home *** CD-ROM | disk | FTP | other *** search
Text File | 2003-08-24 | 163.8 KB | 2,875 lines |
- PHP 4 NEWS
- |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 25 Aug 2003, Version 4.3.3
- - Upgraded the bundled Expat library to version 1.95.6. (Jani)
- - Upgraded the bundled PCRE library to version 4.3. (Andrei)
- - Upgraded the bundled GD library to version GD 2.0.15. (Ilia)
- - Improved the engine to use POSIX/socket IO where feasible. (Sascha)
- - Improved the IMAP extension (Ilia)
- . Added imap_timeout() function. (bug #24161)
- . Added optional 'charset' parameter to imap_search() and imap_sort().
- (bug #22505)
- - Improved the InterBase extension (Daniela)
- . Added transaction constants: IBASE_REC_VERSION, IBASE_REC_NO_VERSION,
- IBASE_WRITE, IBASE_WAIT and IBASE_CONCURRENCY. (bugs #8797, #23887)
- . Made numeric/decimal datatype handling work on any platform.
- - Improved the NSAPI SAPI module (Uwe Schindler)
- . Added possibility to use PHP to generate HTTP error pages (404 Not Found..)
- . Added possibility to use PHP to generate directory listings for directories
- without index.html
- . php4_init (magnus.conf): new parameter to set alternate path to php.ini.
- (php_ini="/path/to/php.ini")
- . php4_execute (obj.conf): support for additional php.ini values.
- Allows different settings per virtual server.
- (See sapi/nsapi/nsapi-readme.txt for more information)
- . Added support for virtual().
- . Added nsapi_request_headers() and nsapi_response_headers() with aliases
- for apache compatibility.
- . Added "nsapi.read_timeout" php.ini option.
- . Synced $_SERVER variables to be similar to Apache variables.
- - Added DBA handler 'inifile' to support ini files. (Marcus)
- - Added a "DEBUG" note to 'php -v' output when --enable-debug is used. (Derick)
- - Added long options into CLI & CGI (e.g. --version). (Marcus)
- - Added a new parameter to preg_match*() that can be used to specify
- the starting offset in the subject string to match from. (Andrei)
- - Fixed possible integer overflows in:
- . base64_encode(). (Moriyoshi)
- . bundled GD library. (Ilia)
- - Fixed "mysql.connect_timeout" php.ini option to be settable with ini_set().
- (Rasmus)
- - Fixed FastCGI IIS document root problem. (Shane)
- - Fixed corruption of multibyte character including 0x5c as second
- byte in multipart/form-data. (Rui)
- - Fixed possible crash in imagerotate() when an invalid color index
- is used for background color. (Pierre-Alain Joye)
- - Fixed a bug that under certain circumstances could invalidate safe_mode.
- (Ilia)
- - Fixed certificate version and allowed setting of the serial number in
- openssl_csr_sign(). (Stefan Roehrich)
- - Fixed each() to be binary safe for keys. (Zeev)
- - Fixed ext/yaz to not log if "yaz.log_file" php.ini option is not set. (Adam)
- - Fixed a bug in bundled libmysql (mysql bug #564). (Georg)
- - Fixed ext/exif to honor "magic_quotes_runtime" php.ini option. (Marcus)
- - Fixed bug #25093 (ext/pgsql: Various leaks due to non-freed queries). (Ilia)
- - Fixed bug #25084 (ext/session: Fixed session.referer_check to be independent
- on register_globals). (Ilia)
- - Fixed bug #25081 (odbc_fetch_array() may mangle numeric fields). (Ilia)
- - Fixed bug #25044 (header("Location:") changing HTTP status). (Marcus)
- - Fixed bug #25037 (win32 mail(): Possible infinite loop inside SendText()).
- (Ilia)
- - Fixed bug #25007 (rand() & mt_rand() seed RNG every call). (Jani)
- - Fixed bug #24989 (external libexpat conflicts with bundled libexpat). (Jani)
- - Fixed bug #24980 (array_reduce() uses first element as default running
- total). (Ilia)
- - Fixed bug #24977 (Reverted mysql_select_db() optimization). (Ilia)
- - Fixed bug #24958 (Apache2 SAPIs: Incorrect handling of 404s). (Ilia, Justin)
- - Fixed bug #24951 (ob_flush() needlessly destroys output handler). (Ilia)
- - Fixed bug #24936 (ext/fdf not linked properly as shared extension). (Jani)
- - Fixed bug #24909 (Bad random numbers with ZTS builds on Solaris). (Ilia)
- - Fixed bug #24897 (inconsistent behavior of shuffle() & array_multisort()).
- (Ilia, Jani)
- - Fixed bug #24883 ("variables_order" and "gpc_order" being ignored). (Ilia)
- - Fixed bug #24873 (incorrect handling of / inside open_basedir). (Ilia)
- - Fixed bug #24871 (aggregate(): methods misidentified as constructors). (Ilia)
- - Fixed bug #24827 (ob_gzhandler overrides Vary header). (Ilia)
- - Fixed bug #24792 (--enable-zend-multibyte causes random segfaults with ZTS).
- (Fujimoto)
- - Fixed bug #24783 (foreach($ar as $key => $val), $key not binary safe). (Zeev)
- - Fixed bug #24760 (non-default SNMP port number not working). (Jani)
- - Fixed bug #24752 (Unhandled "uniqueidentifier" field type).
- (Ilia, s.sonnenberg[at]coolspot.de)
- - Fixed bug #24710 (Crash when $obj->{0} is used). (Zeev)
- - Fixed bug #24663 (\n. sequences were not being escaped). (Ilia)
- - Fixed bug #24640 (var_export() and var_dump() can not output large floats).
- (Marcus)
- - Fixed bug #24629 (FreeBSD select() does not like large microseconds values).
- (Mirco Bauer).
- - Fixed bug #24609 (ext/domxml: segfault when using replace node across
- different docs). (Rob Richards)
- - Fixed bug #24594 (Rewrite of the imagefill() function). (Pierre-Alain Joye)
- - Fixed bug #24592 (NULL related crash in session extension). (Sascha)
- - Fixed bug #24573 (debug_backtrace() crashes if $this set to null). (Jani)
- - Fixed bug #24560 (parse_url() incorrectly handling certain file:// based
- schemas). (Ilia)
- - Fixed bug #24557 (make fclose() respect refcount on the resource).
- (Wez, Ilia)
- - Fixed bug #24537 (apache2 compile misses some include directories). (Jani)
- - Fixed bug #24535 (ext/mysql: crash when retrieving data from unbuffered
- result after the original connection has been changed). (Ilia)
- - Fixed bug #24519 (aggregate_methods_by_list() does not increment refcount).
- - Fixed bug #24313 (file_exists() warning on non-existent files when
- open_basedir is used). (Ilia)
- - Fixed bug #24312 (base64_decode() does not skip 0xF0-0xFF characters).
- (gereon.steffens[at]onvista.de, Ilia)
- - Fixed bug #24284 (Fixed memory leak inside pg_ping()). (Ilia)
- - Fixed bug #24249 (fdf_add_doc_javascript() not available on Windows). (Edin)
- - Fixed bug #24224 (ibase_blob_get() overflow). (Ard)
- - Fixed bug #24223 (missing variable initialization in bundled gd). (Ilia)
- - Fixed bug #24220 (range() didn't handle numeric strings correctly). (Ilia)
- - Fixed bug #24210 (not detecting assume_default_colors - typo). (Sara)
- - Fixed bug #24198 (Invalid recursion detection in array_merge_recurcive()).
- (Ilia)
- - Fixed bug #24177 (Apache2 SAPIs: status set incorrectly after flush()).
- (Ilia)
- - Fixed bug #24155 (gdImageRotate270 incorrectly use x parameter for y axis).
- (tom@gksystems.com, Ilia)
- - Fixed bug #24150 (crash in imap_fetch_overview() &
- imap_rfc822_write_address()). (Ilia)
- - Fixed bug #24142 (workaround for a gcc bug affecting round()). (Marcus, Ilia)
- - Fixed bug #24063 (serialize() missing 0 after the . on scientific notation).
- (Marcus, Ilia)
- - Fixed bug #24063 (scientific notation broken in *printf()). (Ilia)
- - Fixed bug #24060 (ncurses_del_panel() causes segfault). (Georg)
- - Fixed bug #24054 (Integer overflow failure with GCC/x86 for *=). (Sascha)
- - Fixed bug #24028 (Reading raw post message by php://input failed). (Jani)
- - Fixed bug #24009 (FastCGI handling of file not found). (Shane)
- - Fixed bug #24007 (Problem with register_globals & arrays). (Ilia)
- - Fixed bug #23951 (constants in static initializers clobbered by inheritance).
- (Wez, Zend Engine)
- - Fixed bug #23936 (ext/interbase: fail to select and fetch). (Ard)
- - Fixed bug #23913 (make rename() work across partitions on *nix). (Ilia)
- - Fixed bug #23912 (Invalid CSS in phpinfo() output). (Ilia)
- - Fixed bug #23902 (NULL in CGI header output). (Shane)
- - Fixed bug #23898 (Proper handling of NULLs in odbc_result, odbc_fetch_into
- and odbc_result_all). (Ilia)
- - Fixed bug #23897 (Fixed a check for mbfilter_ru.h). (aleks@m2media.ru, Ilia)
- - Fixed bug #23894 (sprintf() decimal specifiers problem). (Moriyoshi)
- - Fixed bug #23888 (Missing input validation for flags parameter). (Ilia)
- - Fixed bug #23808 (broken imagecopymerge()). (Pierre-Alain Joye)
- - Fixed bug #23798 (Spaces were not being stripped from Bcc header). (Ilia)
- - Fixed bug #23792 (imagerotate() problems with limited platte, the function
- will always return true color image from now on). (Pierre-Alain Joye)
- - Fixed bug #23779 (mysql_connect(): disable local infile option if php.ini
- option "open_basedir" is set). (Georg)
- - Fixed bug #23769 (In FreeBSD glob() gives wrong result when pattern not
- found). (Hartmut)
- - Fixed bug #23733 (Coredump on startup with Oracle 9+). (Edin)
- - Fixed bug #23685 (fake values returned when OID value is an empty string).
- (Jani)
- - Fixed bug #23664 (FastCGI socket listenting). (Shane)
- - Fixed bug #23509 (exit code lost when exit() called from
- register_shutdown_function()). (Ilia)
- - Fixed bug #23463 (ext/dbase: added Dbase2 version check). (Vlad Krupin)
- - Fixed bug #23285 (Potential Stack overflow in zendlex). (Wez)
- - Fixed bug #23104 (hash position of static arrays not being reset). (Ilia)
- - Fixed bug #23038, #23574 (aggregate() related leaks and crashes). (Andrei)
- - Fixed bug #22947 (Ack() inside win32/sendmail.c may stall in certain
- situations). (Ilia)
- - Fixed bug #22690 (ob_start() did not work with create_function() callbacks).
- (Marcus)
- - Fixed bug #22592 (Cascading assignments to strings with curly braces broken).
- (Stas)
- - Fixed bug #22245 (References inside $_SESSION not being handled). (Ilia)
- - Fixed bug #22154 (Possible crash when memory_limit is reached and output
- buffering in addition to session.use_trans_sid is used). (Ilia)
- - Fixed bug #22072 (Apache2 sapis do not detect aborted connections). (Ilia)
- - Fixed bug #21958 (workaround for unusual realpath() on AIX & Tru64). (Ilia)
- - Fixed bug #21957 (serialize() mangles objects with __sleep). (Ilia)
- - Fixed bug #21918 (strange behaviour of mixed type in array-keys). (Marcus)
- - Fixed bug #21855 (Threading issue on HP-UX). (Roshan Naik, Andi, Moriyoshi)
- - Fixed bug #21611 (version_compare() does not support "p" as suffix).
- (Stefan Walk)
- - Fixed bug #21074 (Apache2: "ErrorDocument xxx /error.php" broken). (Jani)
- - Fixed bug #20896 (-s -w modes with php-cli cause php to hang). (Ilia)
- - Fixed bug #19613 (putenv("VAR=") does not empty VAR on win32). (Zeev)
- - Fixed bug #18744 (ibase_blob_add() has max limit of 64k). (Ard)
- - Fixed bug #18291 (escapeshellcmd() can now handle quoted arguments). (Ilia)
- - Fixed bug #17414 (pthreads bug workaround). (timo.teras[at]iki.fi)
- - Fixed bug #13142 (strtotime not handling "M d H:i:s Y" format). (Ilia)
- - Fixed bug #11924 (ibase_query(), ibase_execute() mangled passed parameters).
- (Jani)
- - Fixed bug #7014 (crash in _php_ibase_error() after request shutdown). (Ard)
-
- 29 May 2003, Version 4.3.2
- - Syncronized bundled GD library with GD 2.0.12. (Ilia)
- - Removed support for GDLIB version 1.x.x (php_gd.dll) on Windows. (Edin)
- - Enabled read-only GIF support in the bundled GDLIB (php_gd2.dll) on Windows.
- (Sebastian, Edin)
- - Improved dba extension (Marcus)
- . Added support for internal error handling of Berkeley db libraries.
- . Disallowed Berkeley db versions 4.1.0 to 4.1.24 due to locking problems.
- . Disallowed linkage of Berkeley db submodules against libraries with
- different major versions.
- . Disallowed configuring of more than one Berkeley db handler.
- . Reenabled dba_popen() with new persistent STDIO streams.
- - Added a new Apache 2.0 SAPI module (sapi/apache2handler) based on the old
- version (sapi/apache2filter). (Ian Holsman, Justin Erenkrantz)
- - Added "disable_classes" php.ini option to allow administrators to disable
- certain classes for security reasons. (Harald)
- - Added man page for CLI version of PHP. (Marcus)
- - Added --clean option into phpize. (Jani)
- - Added --ldflags option into php-config. (Jani)
- - Added imagesavealpha() and imageistruecolor() functions. (Pierre)
- - Added XBM support for bundled GD library. (Marcus)
- - Added session_regenerate_id() function. (Sascha)
- - Added zlib_get_coding_type() function which returns the coding type used for
- output compression. (Moriyoshi)
- - Added OCIPasswordChange() which allows renewing expired Oracle users. (Maxim)
- - Added memory_get_usage(). Only available when PHP is configured with
- --enable-memory-limit. (Andrey)
- - Added improved JPEG 2000 support for getimagesize(). (Marcus, Adam Wright)
- - Added XBM and WBMP support for getimagesize(). (Marcus)
- - Added KOI8-R, CP866, and CP1251 support for htmlentities().
- (Antony Dovgal, Moriyoshi)
- - Added domdocument->free() to free XML-documents from memory. (Rob Richards)
- - Fixed a bug in error reporting with the CLI for start-up errors. (Derick)
- - Fixed spurious fsync calls during socket communication. (Sascha)
- - Fixed a possible vhost issue in thttpd. (Sascha, dgl@dgl.cx)
- - Fixed including from HTTP URLs. (Sascha)
- - Fixed a lot of memory leaks in domxml. (Rob Richards, Chregu)
- - Fixed a bug in GD's truecolor TTF handling. (Derick)
- - Fixed several 64-bit problems. (Dave)
- - Fixed several errors in hwapi extension. Objects weren't handled properly.
- (Uwe)
- - Fixed bug #23788 (str|preg_replace() clobber the array elements). (Ilia)
- - Fixed bug #23765 (file uploads ignored due to case sensitivity). (Sara)
- - Fixed bug #23738 (ifx_copy_blob() crash). (Jani)
- - Fixed bug #23661 (mysql_fetch_array() gives no warning when an invalid
- argument was passed as result_type). (Derick)
- - Fixed bug #23619 (set_error_handler() registered handler not called for
- object instances). (Jani, waboring@qualys.com)
- - Fixed bug #23606 (Unable to build --with-db4 (db4.1.25)). (Marcus)
- - Fixed bug #23567 (pfsockopen() returns dead connections). (Wez)
- - Fixed bug #23539 (curl_exec() produces strange results). (daniel@haxx.se)
- - Fixed bug #23527 (PostScript Type 1 fonts do not render properly).
- (nid@home.se, Ilia)
- - Fixed bug #23402 (crash with improper use of mssql_bind()). (Frank)
- - Fixed bug #23371 (configure falsely detects c-client using SSL). (Jani)
- - Fixed bug #23340 (fopen on multiple URLs causes memory corruption). (Wez)
- - Fixed bug #23298 (serialize cuts off floats & doubles). (Ilia, Marcus)
- - Fixed bug #23232 (safe_mode does not honor PHP_AUTH_* in apache2). (Ilia)
- - Fixed bug #23225 (money_format() didn't handle erroneous return of strfmon).
- (Ilia, marcot@tabini.ca)
- - Fixed bug #23201 (set_file_buffer() crashes with stdio streams). (Ilia)
- - Fixed Bug #23188 (CDB databases created with 'c' mode do not work). (Marcus)
- - Fixed bug #23187 (memory leaks in sybase_connect/sybase_pconnect). (Ilia)
- - Fixed bug #23162 (user_error() crashs if error message > 1024 bytes).
- (Jay, Marcus, Moriyoshi)
- - Fixed bug #23152 ($http_response_header empty on invalid URLs). (Ilia)
- - Fixed bug #23102 (integer overflow in exif_iif_add_value()). (Ilia)
- - Fixed bug #23099 (ext/interbase: libgds.so: undefined reference to 'crypt').
- (Jani)
- - Fixed bug #23093 (highlight_string() crashed with __FUNCTION__). (Jani)
- - Fixed bug #23080 (socket_strerror() crashes on win32). (Moriyoshi)
- - Fixed bug #23071 (when DST in effect, date("T") crashed PHP).
- (Scott MacVicar, Jani)
- - Fixed bug #23069 (tempnam creates readonly file [win32]). (Wez)
- - Fixed bug #23009 (pg_select with timestamp). (Marcus, Jay)
- - Fixed bug #23008 (ldap_start_tls() not available on Windows). (Edin)
- - Fixed bug #23004 (When ftp_close() is called, send QUIT to the ftp server).
- (Ilia)
- - Fixed bug #22989 (sendmail not found by configure). (igyu@ionsphere.org)
- - Fixed bug #22987 (missing perror() check in configure). (Jani)
- - Fixed bug #22965 (Crash in gd lib's ImageFillToBorder()). (Ilia)
- - Fixed bug #22939 (crash in imap_header_info()). (Ilia)
- - Fixed bug #22844 (Changing bool value via -d or ini_set(), On would be Off).
- (Ilia)
- - Fixed bug #22786 (Crash when trying to call DomAttribute's
- set_namespace method). (Chregu)
- - Fixed bug #22775 (Fatal errors exit with status 0 with CGI/CLI). (Jani)
- - Fixed bug #22774 (PHP crashes when exiting (long XML doc)). (Rob Richards)
- - Fixed bug #22751 (Compile error in gdcache.c when external libgd is used).
- (Jani)
- - Fixed bug #22721 (Poor file() performance on systems without mmap). (Wez)
- - Fixed bug #22709 (Crash in interbase when database unavailable).
- (Vladimir Michl)
- - Fixed bug #22681 (Crash when reading from invalid file pointer). (Ilia)
- - Fixed bug #22672 (User not logged under Apache2). (Ian)
- - Fixed bug #22616 (Wrong order of -lssl and -lcrypto with IMAP). (Jani)
- - Fixed bug #22613 (imagettfbox() does not add the kerning distance to the
- running position). (Ilia)
- - Fixed bug #22585 (Do not terminate the script on minor errors). (Ilia)
- - Fixed bug #22550 (overflow protection for upload_max_filesize ini option).
- (Ilia)
- - Fixed bug #22544 (writing transparency to truecolor png images). (Ilia)
- - Fixed bug #22538 (failed stat on stdio/stdin/stderr streams). (Wez, Ilia)
- - Fixed bug #22530 (append_child does not unlink node). (Chregu)
- - Fixed bug #22520 (mcrypt_generic_deinit() was not available on Windows).
- (Edin)
- - Fixed bug #22508 (Added protection against circular HTML redirects). (Ilia)
- - Fixed bug #22473 (ISAPI Secure Server variables not available).
- (Christian Swoboda)
- - Fixed bug #22402 (opening of ftp for read/write could fail due to invalid
- return code handling). (Ilia)
- - Fixed bug #22384 (FNM_CASEFOLD is not available). (Hartmut)
- - Fixed bug #22382 (fgetcsv() did not handle \" correctly). (Ilia)
- - Fixed bug #22376 (wrong httpd.conf modified when using INSTALL_ROOT). (Jani)
- - Fixed bug #22363 (combinations of fwrite(), fread() and fseek() produce
- unexpected results). (Wez)
- - Fixed bug #22355 (PHP would remove folding from Subject & To fields). (Ilia)
- - Fixed bug #22330 (overloaded strrpos() gives wrong results).
- (david@santinoli.com, Moriyoshi)
- - Fixed bug #22312 (crash on failed connection when curl_getinfo() was called).
- (Phil Oleson <poleson@verio.net>)
- - Fixed bug #22308 (optimized passthru, code is now ~40 times faster). (Ilia)
- - Fixed bug #22306 (pg_lo_seek($h, 0, PGSQL_SEEK_SET) succeeds but
- returns false). (Jani)
- - Fixed bug #22301 (htmlspecialchars() crashes Apache on Tru64). (Ilia)
- - Fixed bug #22299 (gethostbyname() with non-existing domain crashed on MacOSX).
- (Jani)
- - Fixed bug #22283 (possible crash when opening relative URLs). (Ilia)
- - Fixed bug #22238 (stream_select() clobbers fifos under win9x). (Wez)
- - Fixed bug #22234 (copy() fails if source file has 0 length). (Moriyoshi)
- - Fixed bug #22227 (printf() field limiters broke between 4.2.3 and 4.3.0).
- (Moriyoshi)
- - Fixed bug #22224 (implode() changes object references in array). (Moriyoshi)
- - Fixed bug #22221 (bad rows count in the result object for postgresql). (Marc)
- - Fixed bug #22207 (e notation in *printf would be missing a 0 when there is
- no exponent). (Ilia)
- - Fixed bug #22220 ("php_admin_value open_basedir none" does not work). (Jani)
- - Fixed bug #22191 (frontbase build broken with old version of frontbase).
- (Ilia)
- - Fixed bug #22187 (spprintf function did not handle floats correctly). (Ilia)
- - Fixed bug #22149 (incorrect insertion of session id when tabs are used to
- separate tag elements). (Ilia)
- - Fixed bug #22141 (removed undocumented Boyer str_replace() method). (Sara)
- - Fixed bug #22103 (Added gdImageEllipse and replaced old gdImageFilledEllipse
- with a better implementation). (Pierre)
- - Fixed bug #22088 (array_shift() left next index to be +1 too much). (Jani)
- - Fixed bug #22083 (MySQL charset directory problem on Windows). (Edin)
- - Fixed bug #22059 (ftp_chdir() causes segfault). (Sara)
- - Fixed bug #22048 (crash in imap_header() when the e-mail contains an
- abnormally large number of special characters). (Ilia)
- - Fixed bug #22042 (pg_result_seek() would never seek to the 1st row in the
- result due to always seeking to row next to the one requested). (Ilia)
- - Fixed bug #22031 (Made curl_write() & curl_write_header() binary safe).
- (Ilia)
- - Fixed bug #22022 (Crash in imap_mail_compose() if the body is an empty array).
- (Ilia)
- - Fixed bug #22017 (date() does not support negative timestamps on win32).
- (Ilia)
- - Fixed bug #22008 (strip_tags() eliminates too much). (Moriyoshi)
- - Fixed bug #21007 (html_errors off text-only output in phpinfo). (Marcus)
- - Fixed bug #22004 (Overload extension and _call() breaks classes). (Shane)
- - Fixed bug #21998 (array_pop() did not reset the current array position).
- (Jani)
- - Fixed bug #21978, #21036 (win32 mail(), bcc: gets interpreted as cc:). (Sara)
- - Fixed bug #21885 (move_uploaded_file() does not ignore open_basedir). (Wez)
- - Fixed bug #21820 ("$arr['foo']" generates bogus E_NOTICE, should be E_PARSE).
- (Jani)
- - Fixed bug #21815 (fpassthru() ignored buffered data but complained anyway).
- (Wez)
- - Fixed bug #21809 (select would not always timeout during socket shutdown).
- (Wez)
- - Fixed bug #21751 (default output buffer could not be deleted). (Marcus)
- - Fixed bug #21725 (return behaviour differs between include and require).
- (Zeev)
- - Fixed bug #21713 (include remote files leaks descriptors on Solaris). (Wez)
- - Fixed bug #21708 (ucwords() trouble again). (Moriyoshi)
- - Fixed bug #21689 (fgetcsv() suppresses some characters before a separator).
- (Masahiro, Moriyoshi)
- - Fixed bug #21912, #21676 (getimagesize() failed for remote files). (Wez)
- - Fixed bug #21597 (made glob() understand Windows paths). (Edin)
- - Fixed bug #21549 (problem with Ingres II persistent connections). (Jani)
- - Fixed bug #21544 (Extended checks for where FreeTDS is installed). (Frank)
- - Fixed bug #21534 (typo in gmp_gcdext() causes incorrect results). (Sara)
- - Fixed bug #21531 (file_exists() and other filestat functions report errors
- when the requested file/directory does not exists). (Sara)
- - Fixed bug #21529 (memory corruption by fsockopen()). (Ilia)
- - Fixed bug #21525 (bind_textdomain_codeset() now available on Windows). (Edin)
- - Fixed bug #21523 (number_format() could cause a memory allocation for a
- negative memory size in situations where the sprintf implementation of the
- host system generated less decimal places than were requested). (Wez)
- - Fixed bug #21518 (imagecreatefromstring() crashed with invalid image files).
- (Ilia)
- - Fixed bug #21511 (config.status warning). (Jani)
- - Fixed bug #21498 (mysql_pconnect connection problems). (Georg)
- - Fixed bug #21453 (improper handling of non-terminated < by strip_tags()).
- (Ilia)
- - Fixed bug #21445 (gd unable to open fonts). (Ilia)
- - Fixed bug #21443 (improper handling of ? surrounded by spaces
- in get_browser()). (Ilia)
- - Fixed bug #21442 (crash in mail() on Windows when 1st parameter is empty).
- (Edin)
- - Fixed bug #21410 (fixed handling of NULL or "" files on Win32). (Ilia)
- - Fixed bug #21378 (COM code crashes after update 4.2.1 to 4.3.0). (Harald)
- - Fixed bug #21338 (html_entity_decode() crashed when "" is passed). (Ilia)
- - Fixed bug #21310 (Solaris has issues with getcwd() needing read permissions
- on directories instead of just execute). (Wez, jflemer)
- - Fixed bug #21297 (in CLI/CGI on the #! it would leave a \n when the code
- encounters \r\n). (Ilia)
- - Fixed bug #21268 (session_decode() returned FALSE on success). (Ilia)
- - Fixed bug #21267 (opening URLs that result in redirection to a relative
- path was failing). (Ilia)
- - Fixed bug #21229 (missing 3rd argument to php_module_startup). (Ilia)
- - Fixed bug #21228 (broken check for ob_gzhandler and made ob_start() return
- the correct value). (Ilia)
- - Fixed bug #21226 (parse_url handling of urls without a path). (Ilia)
- - Fixed bug #21224 (apache configure fails when using --enable-versioning).
- (Jani)
- - Fixed bug #21169 (Compile Failure and lots of warnings on UnixWare). (Derick)
- - Fixed bug #21131 (fopen() with mode 'a+' and rewind() doesn't work). (Wez)
- - Fixed bug #20857 (snmpset() failed always, patch by: rs@epost.de). (Jani)
- - Fixed bug #20802 (PHP would die silently when memory limit reached). (Ilia)
- - Fixed bug #20715 (odbc could not be compiled as shared extension). (Jani)
- - Fixed bug #20641 (Numeric/decimal datatype overflow in ext/interbase
- on Win32). (Daniela)
- - Fixed bug #20503 (imagesetbrush() not available on Windows). (Edin)
- - Fixed bug #20282 (COM memory leak). (Harald)
- - Fixed bug #20256 (snprintf() not defined on some systems). (Jani)
- - Fixed bug #19919 (crash in sapi_apache_header_handler under heavy load).
- (George)
- - Fixed bug #19795 (Problems with strnatcmp() / strnatcasecmp()). (Moriyoshi)
- - Fixed bug #17868 (multiple <!--include--> used to include PHP files crashes).
- (Ilia)
- - Fixed bug #17448 (Print the message when OCI_SUCCESS_WITH_INFO is returned).
- (Maxim)
- - Fixed bug #17098 (make Apache2 aware that PHP scripts should not be cached).
- (Ilia)
- - Fixed bug #16798 (Compile failure with LOB support for Oracle version < 8.1).
- (Maxim)
- - Fixed bug #14532 (fixed connection_status() to return 2 for timeouts). (Jani)
- - Fixed bug #14245 ('make install' fails on AIX when using --with-apxs). (Jani)
- - Fixed bug #13757 (CGI: passing query string on command line broken). (Shane)
- - Fixed bug #13561 (--without-pear disabled phpize/php-config install). (Jani)
- - Fixed bug #13551 (bcmath functions applying scale incorrectly). (Sara)
-
- 17 Feb 2003, Version 4.3.1
- - Fixed serious security vulnerability in CGI SAPI. (Shane)
-
- 27 Dec 2002, Version 4.3.0
- - If you don't specify building any other SAPI "make install" will install the
- CGI SAPI binary in {PREFIX}/bin/php. If you want to install CLI SAPI in that
- location use "make install-cli" after "make install" or add --disable-cgi
- to your configure options. In the Windows distribution CLI SAPI is included
- in the "cli" folder. (Edin)
- - Removed extensions: (Jan, Jani, Sebastian)
- . ext/aspell
- . ext/ccvs
- . ext/icap
- . sapi/fastcgi
- . sapi/fhttpd
- - Moved extensions to PECL (http://pear.php.net/): (James, Derick, George)
- . ext/vpopmail
- . ext/cybermut
- . ext/cybercash
- - Make PHP_AUTH_* variables not available in safe mode under Apache when an
- external basic auth mechanism is used. (Philip)
- - Aliased dba_popen() to dba_open() until 4.3.2 when persistent STDIO streams
- are introduced. (Andrei)
- - Fixed a security bug in the bundled MySQL library. (Georg, Stefan)
- - ZLIB extension is now built-in in the Windows distribution.
- External extension (php_zlib.dll) has been removed. (Edin)
- - Fixed a bug in ISO-8601 week calculation
- - Fixed a crash when using invalid color index with imagecolortransparent().
- (Pierre-Alain Joye)
- - Fixed bug #20987 (no handling for client certificates). (Ilia)
- - Fixed bug #21039 (crash when not supplying an IV to mcrypt_generic_init).
- (Derick)
- - Fixed bug #20936 (openssl_pkey_get was broken). (jeroen@derks.it, Wez)
- - Fixed bug #20927 (wordwrap crash). (Ilia)
- - Fixed bug #20796 (when register_globals is on & arrays with same names are
- passed via get/post/cookie the data inside $_GET/$_POST/$_COOKIE can would be
- corrupted). (Ilia)
- - Fixed bug #20725 (if the upload directory cannot be written to, the POST data
- after the uploaded file is lost). (Ilia)
- - Fixed bug #20865 (array_key_exists() fails to find NULL key). (Ilia)
- - Fixed bug #20812 (ftp_get returned NULL on success, instead of TRUE). (Ilia)
- - Fixed bug #20785 (crash when using pdf_open_memory_image() to load a
- true-color image). (Ilia)
- - Fixed a crash when converting between true-color images (png/jpeg) and
- gd1/gd2 image formats, png/jpeg -> gd1/gd2 -> png/jpeg conversion now
- works correctly. (Ilia, Pierre-Alain Joye)
- - Fixed a memory leak in the bundled GD library inside
- gdImageTrueColorToPalette(). (Ilia)
- - Fixed bug #12776 (array_walk crash). (Moriyoshi)
- - Fixed bug #20934 (htmlspecialchars returns latin1 from UTF-8). (Moriyoshi)
- - Fixed bugs #20270, #15702, #18600 (segfaults in ext/java). (Tony J. White)
- - Made bcmath extension thread safe. (Sander)
- - Fixed bug #19566 (get_declared_classes() segfaults). (Moriyoshi, Marcus, Andi)
- - Fixed bug #20381 (array_merge_recursive mangles input arrays). (Moriyoshi)
- - Added -n command switch to cli and cgi version which allows to skip php.ini
- parsing at startup. (Marcus, Wez)
- - Fixed bug #19689 (absolute paths like /test/dir/ not working correctly).
- (Ilia)
- - Added "neutral" language entry to mbstring spec. (Moriyoshi)
- - Changed bundled gd library to consider php.ini option memory_limit. (Marcus)
- - Modified log() to accept multiple bases. (Jason)
- - Fixed bugs #16190/18746 (ext/db: flatfile support with windows). (Marcus)
- - Added gd_info() which returns an array of gd support information. (Marcus)
- - Implemented features/changes requested in Bug #16960 (Timm):
- . Added a new function sybase_unbuffered_query()
- . Added a new function sybase_fetch_assoc()
- . Added sybase_set_message_handler() which enables users to handle
- server messages in a callback function
- . Added an ini entry for deadlock retries - retrying deadlocks can cause
- transaction state to break (sybct.deadlock_retry_count,
- defaults to -1 "forever").
- . Fixed sybase_fetch_object() not to return objects with numeric members
- . Fixed issues with identical fieldnames
- . Made sybase_fetch_*() functions return correct datatypes
- . Made phpinfo() section more verbose
- . Made sybase_query() error messages more verbose
- - Fixed bug #19935 (made OpenSSL file system operations abide by safe_mode
- & open_basedir restrictions). (Ilia)
- - Fixed bug #18868 (improved the check for availability of realpath()). (Ilia)
- - Fixed width/height detection of bmp images using getimagesize() function on
- big endian systems and added code to retrieve bmp bit depth. (Ilia)
- - Fixed bug #20035 (line counting error when script starts with #! in
- cgi/cli/fastcgi sapis). (Ilia)
- - Fixed bug #20235 (incorrect handling of symlinks on ZTS build). (Ilia)
- - Added sanity checks to headers_sent() & image_type_to_mime_type(). (Ilia)
- - Added an aditional parameter to the jdtojewish() function which makes
- the function return the symbolic hebrew name. (Moshe Doron, Derick)
- - Fixed bug #20169 (implode() clobbers first argument). (Moriyoshi)
- - Improved dba extension (Marcus)
- . Added dba_handlers() that returns an array of installed handlers and
- dba_list() that returns an associative array of open database files.
- . Added bundled cdb support wich can be activated by --with-cdb without a
- path. The bundled version supports cdb_make that allows writing cdb files.
- . Added optional skip parameter to dba_fetch() to support multiple key-value
- pairs with the same key for cdb handler.
- . Added locking for those handlers that do not have their own locking.
- . Added support for magic_quotes_runtime php.ini option.
- . Added flatfile support what finally makes ext/db deprecated.
- - Added imagerotate() which is available only when bundled libgd is used.
- (Pierre-Alain Joye, Ilia)
- - Fixed bug #17497 (mssql extension crashes if magic_quotes_runtime is on).
- (Sterling)
- - Remove $_FILES from $_REQUEST (import_request_variables is not modified),
- this didn't work properly in the first place, and added confusion. (Sterling)
- - Fixed the socket_read() function on win32 to work in normal mode (reading to
- the end of a line), as well as binary mode. (Sterling)
- - Fixed bug #20110 (added sanity check to prevent include/require functions
- from trying to include directories). (Ilia)
- - Fixed bug #20108 (segmentation fault on printf("%1.1s", "string")). (Ilia)
- - Added dbx_escape_string() function to dbx module. (Marc)
- - Added Oracle (oci8) support to dbx module. (Marc)
- - Updated FDF extension to work with Adode fdftk 5.0. (Hartmut)
- - Added mb_strtolower() and mb_strtoupper(). (Moriyoshi)
- - Fixed an infinite loop in setlocale() when only invalid locale names
- were passed in the array. (patch by Pal Loberg, pallo@initio.no)
- - Fixed bugs #19156 and #19544 (COM extension leaks memory and keeps
- components referenced). (Harald)
- - Added fribidi_get_charsets() and fribidi_charset_info() functions. (Tal)
- - Added Oracle TIMESTAMP type to oci8 extension. (Thies)
- - Fixed fgets($fp) to read until EOL when length parameter is not set. (Wez)
- - Changed registry entries under "HKLM\SOFTWARE\PHP\Per Directory Values" to
- work also with administrative directives such as safe_mode, open_basedir,
- etc. (Claudio Felber)
- - Added str_word_count() function which counts words inside a string. (Ilia)
- - Added PGSQL_CONNECT_FORCE_NEW option to pg_connect() (Yasuo)
- - Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to
- indicate which iconv implementation is used. (Moriyoshi)
- - Fixed bug #4232 (Added %e & %E support to printf/sprintf). (Ilia)
- - Fixed bug #17580 (Allow ini parser to parse files >16K). (Ilia)
- - Fixed bug #19649 (Sanity checks for browscap.ini parser). (Ilia)
- - Added experimental patch to address problem with floats on various locales.
- (Bug #17079). (Ilia)
- - Fixed bug #19280 (imap_header fails with many To: addresses). (Ilia)
- - Added mb_regex_set_options(). The Options parameters of various mbregex
- functions are now deprecated. (Moriyoshi)
- - Fixed bug #19482 (Segfault with PCRE and locale). (Andrei)
- - Made ImageTruecolorToPalette() in bundled GD2 library actually work. (Rasmus)
- - Fixed ImageCopy() in bundled GD2 library to handle copying from truecolor to
- palette-based. (Wez, Rasmus)
- - Added read-only GIF support for bundled GD2 library. (Rasmus)
- - Made several adjustments to xslt extension (David Viner, Lehnar, Melvyn)
- . Added xslt_set_object and xslt_setopt function
- . Changed backend interaction with Sablotron library
- . Fixed leak with error_print
- . Made xslt_make_array() always set NULL on last index to signal array end.
- - Changed the glue argument in implode() to be optional. If not specified,
- defaults to "". (Sterling)
- - Fixed fields argument to contain correct info for xslt_set_error_handler().
- (Patch by Lenar Lohmus)
- - Added --with-config-file-scan-dir compile-time switch which specifies a
- directory which will be scanned for *.ini files. (Rasmus)
- - Added ob_get_clean() and ob_get_flush(). (Yasuo)
- - Added ftp_ssl_connect() to ext/ftp for FTP over SSL support. (Stefan Esser)
- - Made a few additions and changes to Apache 2 sapi. (Ilia)
- . Added apache_response_headers(), apache_note(), apache_getenv() and
- apache_setenv() functions.
- . Added more detailed error reporting to apache_lookup_uri() and virtual().
- . Renamed getallheaders() to apache_request_headers() and made an alias for BC.
- . Added php_apache_sapi_getenv() and php_apache_sapi_get_stat().
- . Added syntax-highlighting handling (.phps)
- - Fixed strstr(), strchr() and strrchr() to be binary safe. (Andrey)
- - Added array_diff_assoc() and array_intersect_assoc(). (Andrey)
- - Fixed bug #17825 (ob_start() chunk size option didn't work well). (Yasuo)
- - Fixed output buffer infinite loop when buffer_size became 0. (Marcus, Wez)
- - Added getopt() for parsing command line options and arguments. (Jon)
- - Added pg_fetch_assoc(), pg_fetch_all(), pg_ping(), pg_meta_data(), pg_convert(),
- pg_insert(), pg_select(), pg_update(), pg_delete(), pg_result_seek(),
- pg_unescape_bytea(), pg_get_notify() and pg_get_pid(). (Yasuo)
- - Fixed bug #17281 (Sanity checks for encoding sessions). (Ilia)
- - Fixed bug #16995 and #19392 (Prevent crash if $HTTP_SESSION_VARS != ARRAY).
- (Ilia)
- - Fixed bug #19292 (open_basedir restriction problem). (Rasmus)
- - Fixed bug #19366 (gdImageFill crashes when x & y are outside of
- the image's boundries). (Ilia)
- - Fixed bug #13936 (__FILE__ constant didn't contain full path). (Ilia)
- - PHP now has a new stream system that allows it to do some clever stuff with
- fopen() and fsockopen(). As a result:
- . URL wrappers natively supports https:// URLs if you have compiled
- OpenSSL support into PHP (shared extension does not support this).
- . Added support for fopen("ftps://...", ...) which allows to connect to FTP
- servers via SSL. (Stefan Esser)
- . fsockopen() adds support for ssl:// and tls:// connections via TCP/IP
- . copy($srcfilename, $destfilename) can now be used with URL wrappers
- . zlib wrappers/streams can be used even on systems without fopencookie()
- . Changed 'zlib:' fopen wrapper to 'compress.zlib://' and deprecate
- 'zlib:' to avoid ambiguities when filenames have ':' characters. (Wez)
- . Added 'compress.bzip2://' stream and wrapper support.
- . Added user-space streams - it is now possible to define a class in PHP
- code and register it as a URL wrapper. (stream_register_wrapper)
- . Most extensions now support streams when passing files, which means
- that those extensions will now also support URL wrappers. (Wez)
- . Added URL-wrapper support to exif. (Marcus)
- . Added memory stream support. (Marcus)
- . Renamed:
- socket_set_timeout() -> stream_set_timeout()
- socket_set_blocking() -> stream_set_blocking()
- set_file_buffer() -> stream_set_write_buffer()
- socket_get_status() -> stream_get_meta_data()
- As these functions can (in theory) work on any type of stream. (Wez)
- . Raw POST data is now available as "php://input" stream. (Hartmut)
- . fopen("php://output", "wb") returns a stream that writes to the output
- buffer (like echo and print). (Wez)
- . Added stream_context_create(), stream_context_set_params() and
- stream_context_set_option and added an optional fourth parameter to
- fopen() which accepts a stream context. Contexts allow sharing of
- information between streams (a kind of "session") and setting
- notification callbacks. (Wez)
- . Made the "User-Agent" header sent by http:// and https:// wrappers
- configurable in php.ini or via a stream context. (Sterling)
- . Added stream_filter_prepend() and stream_filter_append() which apply
- a filter to either the top or the bottom of a stream filter stack.
- Implemented "string.rot13" filter as an example; more filters are
- expected to follow in later releases and other extensions. (Wez)
- . Added stream_select() which works like socket_select but works on
- streams returned by fopen(), fsockopen() and pfsockopen() instead. (Wez)
- . Added STDIN, STDOUT and STDERR constants for CLI sapi reflecting opened
- streams to their respective standard I/O counterparts. (Edin)
- . Added php.ini option "auto_detect_line_endings" which enables PHP to
- detect Macintosh, Unix and Dos end-of-line characters in fgets() and
- file(). Fixes bugs #16521 and #16708. (Wez)
- . Fixed include(), require() and GD functions to work with remote files
- under win32.
- Fixed bug #18609 (ImageCreateFromJPEG can't fetch from a URL). (Wez)
- - Fixed bug #18022 (fopen does not work with php://stdin anymore on Solaris).
- (Wez)
- - Added php.ini option "default_socket_timeout" to set the timeout limit for
- PHP network streams. (kalowsky, ilia@prohost.org, Wez)
- - Added file_get_contents() which returns the contents of a file as a string.
- This function also supports the URL wrappers. (Wez)
- - Fixed bug #19595 (Missing functions for GD2 format handling). (Edin)
- - Fixed bug #19633 (Wrong directories in ext/ldap/config.m4). (Derick)
- - Fixed bugs #17274 and #19627 (segfault in sem_remove). (Wez)
- - Added mb_convert_case() function to the mbstring extension which can convert
- strings between upper, lower and title case using Unicode mappings.
- Fixed bug #19257 (strtolower & strtoupper does not work for UTF-8 strings).
- (Wez)
- - Fixed bug #18521 (htmlentities didn't warn about unsupported charsets). (Wez)
- - Fixed bug #11643 (Session related, fix SID redefinition). (Ilia)
- - Fixed bug #18556 (Scripting Engine, problem with locales like tr_TR). (Ilia)
- - Changed y2k_compliance to default to 1 now. (Sascha)
- - Added platform independent socket error constants for better error handling. (Jason)
- - Update output of phpinfo() to use more CSS to reduce the file size, do
- proper HTML escaping, and make it XHTML compliant. (Colin)
- - Fixed compile errors in the FriBidi extension (Bug #16414). (Tal)
- - Fixed bugs #7472, #12120 and #12989 as well as other potential problems
- with strip_tags() function. (Ilia)
- - Fixed bugs #17570 and #17957 (Regexps related). (Andrei, Ilia)
- - Fixed bugs #18167 and #16859 (SEGV with session_decode). (Ilia)
- - Fixed bugs #19573 and #13472 (Session, XHTML compliance and trans_sid).
- (Sascha)
- - Fixed bug #19570 (last character was missing in get_html_translation_table).
- (Wez)
- - Upgraded PCRE to version 3.9. (Wez)
- - Fixed bug in OCIResult() which returned garbage when called on
- empty result-sets. (Thies)
- - Added ability to use Perl-style ${n} subpattern references in the
- replacement string for preg_replace() (bug #18442). (Andrei)
- - Fixed array_merge_recursive() to avoid problems with merging cyclical
- arrays (bug #16064). (Andrei)
- - Made function_exists() work properly with disabled functions. (Andrei)
- - Added ability to extract() variables as references via OR'able EXTR_REFS
- flag. (Andrei)
- - Fixed a build failure with the OCI8 extension on Tru64.
- (Patch by Michael Mauch, micahel.mauch@gmx.de)
- - Added --disable-all configure option. (Jani)
- - Backported debug_backtrace() from ZendEngine2. (Thies)
- - Added html-free phpinfo() output for CLI. (Jan)
- - Fixed socket_recvfrom() to be binary safe. (Jason)
- - Changed mail() to use escape_shell_cmd() to allow multiple extra parameters
- to the invocation of the mailer as used in the fifth parameter. (Derick)
- - Changed cURL extension to require cURL version 7.9.8 (Derick)
- - Added zend_execute_internal which is called like zend_execute but for
- internal functions. (Thies)
- - Changed pg_connection_status(), pg_connection_reset(), pg_connection_busy(),
- pg_result_status() and pg_result_error() to silently return FALSE when
- resource is not passed to them. (Yasuo)
- - Fixed some mysql compile failures on 64 bit-OS. (Georg)
- - Added warnings for deprecated mysql functions:
- . mysql_create_db()
- . mysql_drop_db()
- . mysql_escape_string()
- - Added XsltObject->result_dump_mem($result) for returning xslt-result directly
- into a string and XsltObject->result_dump_file($result,$file[,$compression])
- for dumping into a file. (morus.walter@web.de, chregu)
- - Made mime_magic and ZIP extensions available on Windows. (Edin)
- - Added xslt_backend_version() and xslt_backend_name() for getting
- information about the processor backend. (chregu)
- - Added ImageColorMatch() and ImageLayerEffect() functions which are only
- available when using the bundled GD library. (ttoohey)
- - Made major improvents to the pcntl extension. (Jason)
- . Greatly improved performance (signal callback mechanism uses ticks)
- . Implemented object signal callback ability by using array($obj, $method)
- . Added a restart parameter to pcntl_signal, which allows you to disable
- the default of system call restarting
- - Changed DomNode->next_sibling() and DomNode->previous_sibling() to return
- NULL instead of false (W3C specs). (chregu)
- - Changed DomNode->insert_before() and DomNode->append_child() to conform to
- W3C specs (moving not copying nodes, accepting NULL as 2nd param). (chregu)
- - Added DomNode->set_namespace(uri[,prefix]) (chregu)
- - Fixed shuffle() to properly generate all possibilities. (Patch provided by
- Adam <adam@trachtenberg.com>)
- - Fixed DomNode->insert_before() to behave according to W3C spec
- ie. new_child is moved, not copied. (chregu)
- - Added some namespace support with DomNode->add_namespace(uri, prefix)
- and DomDocument->create_element_ns(uri, nodename) (chregu)
- - Added optional parameter to DomElement->node_name() for retrieving fully
- qualified name (ie. namespace prefix). (chregu)
- - Changed DomNode->child_nodes() to return empty array instead of false if no
- child nodes are found. (chregu)
- - Fixed a bug with handling the Expect header. (Patch by ilia@prohost.org)
- - Fixed a bug in ODBC where closing the module caused a crash in the Windows
- executable. (kalowsky)
- - Fixed memory leaks in pack() and unpack(). (Patch by ilia@prohost.org)
- - Added URLs to error messages which direct to a page describing the error or
- function in question. (Derick, Wez, Marcus)
- - Added odbc_data_source() functionality to identify DB ServerName, and a
- description of it gathered from the DSN. (kalowsky)
- - Fixed copy() to return TRUE with 0 byte files. (Patch by ilia@prohost.org)
- - Added ob_list_handlers() which returns an array of all active output
- handlers. (Marcus)
- - Added mbstring encoding/decoding "HTML-ENTITIES". (Marcus)
- - Added parameter 'L' for mb_http_input() to retrieve input encoding as a
- comma separated string. (Marcus)
- - Added the ability for declare() compiler modifications to occur globally
- by using an empty statement. (Jason, Zend Engine)
- i.e.
- //Globally enables the ticks modifier for the whole program
- declare (ticks=1);
-
- //Enables the ticks modifier for just the lexical block containing
- //"statement".
- declare (ticks=1) {
- statement;
- }
- - Brought strtotime() "next" keyword handling in line with documentation and
- its glibc cousin. (Rasmus)
- - Fixed str_rot13() to not mangle source string. (Rasmus)
- - Fixed imap_get_quota() to work with multiple returned resources as per
- the RFC 2087 and bug #14673. (kalowsky, Sander Steffann)
- - Added MarkerNote decoding to exif_read_data() for several Cameras. (Marcus)
- - Disabled zlib.output_compression for "image/" content-type
- headers which can be changed during script execution. (Stefan)
- - Added new asynchronous FTP functions. (Stefan)
- - Added optional 5th parameter to FTP functions to support resuming. (Stefan)
- - Added optional 2nd parameter to print_r() to make it return the variable
- representation instead of echoing it. (Derick)
- - Added mysql_ping(), mysql_real_escape_string(), mysql_character_set_name(),
- mysql_thread_id(), mysql_stat() and mysql_list_processes(). (Zak, Georg)
- - Added safe_mode & open_basedir checks for pg_lo_export(). (Yasuo)
- - Added open_basedir check for pg_lo_import(). (Yasuo)
- - Fixed infinite recursion crash bug in ticks. (Jason)
- - Added php.ini option "mysql.connect_timeout" to set the timeout limit for
- mysql_connect() and mysql_pconnect(). (Georg)
- - Added optional parameter "flags" to mysql_connect() and mysql_pconnect()
- which can be used to set usage of idle timeout and different protocols,
- SSL and compressed. (Georg)
- - Added automatic rollback to ext/mysql for non committed transactions. (Georg)
- - Fixed cases where preg_split() incorrectly terminated final element if it
- contained null bytes. (Andrei)
- - Added persistent connections/pipelining to thttpd. (Sascha)
- - Fixed two potential blocking issues in thttpd. (Sascha)
- - Fixed broken header file detection on Solaris. (Sascha)
- - Improved nss/socket-related symbol/library detection. (Jani, Sascha)
- - Made iconv() work well with both libiconv and libgconv. (Moriyoshi, Yasuo)
- - Fixed socket_set_timeout() on win32. (Jason, Edin, Jani)
- - Added domxml_node_namespace_uri(). (Rui Lopes)
- - Fixed win32 memory leak in /ext/sockets that would occur on any error
- condition. Also fixed host resolution error messages on win32. (Jason)
- - Added optional 3rd parameter 'recursive' to ftp_rawlist() which will
- do 'LIST -R' instead of 'LIST'. (Jani)
- - Changed getimagesize() to always set unknown fields to 0 and added support
- for iff imagetype. (Marcus)
- - Added runtime Apache2 thread check to ensure we don't run a non-threaded
- PHP inside a threaded Apache2 MPM. (Rasmus)
- - Made getimagesize() and exif_read_data() to return also the mime-type and
- exif_thumbnail() to return also the image-type. (Marcus)
- - Added image_type_to_mime_type() which converts image-types to mime-types.
- (Marcus)
- - Made GD functions to only exist if they are available in libgd. Now the
- availability can be tested with function_exists(). (Derick)
- - Added an optional parameter to the header() function which overrides the HTTP
- response code. (Derick)
- - Changed the order of which modules are unloaded to the reverse order of
- which they were loaded. (Derick, Zend Engine)
- - Added preliminary SAX-Input support. It's now possible to build a DomDocument
- with SAX-Events. (chregu)
- - Bundled GD library 2.0.1 with php (ext/gd/libgd) (Rasmus, Jani, Markus, Edin)
- - Fixed bzopen() crash in thread-safe mode. (Andrei)
- - Added better error-messages (3rd parameter) and validating of DTDs (2nd
- parameter) to domxml_open_mem() and domxml_open_file(). (Christian)
- - Added domxml_doc_validate() for validating existing DomDocuments with a DTD.
- (Christian)
- - Added ability to capture string offsets in preg_match_*() results.
- (David Brown, Andrei)
- - Fixed set_error_handler() to accept methods as callbacks and also report
- invalid callbacks. (Andrei)
- - Fixed a memory corruption bug in overload extension. (Andrei)
- - Fixed error handling in fsockopen() on win32. (Jason)
- - Added win32 support for the timeout parameter of fsockopen(). (Jason)
- - Fixed shuffle() to provide equal distribution of values. (Andrei)
- - Added --with-mysql-sock configure option which can be used to override
- the unix socket location. (e.g. NFS compiles, etc.) (James Cox)
- - Fixed is_a() to properly work on extension registered classes. (Andrei)
- - Added new constants: PHP_PREFIX and PHP_SHLIB_SUFFIX. (Stig)
- - Added pctnl_alarm() function. (Edin)
- - If zlib.output_compression is enabled and a page is compressed
- a "Vary: Accept-Encoding" header is now added. (Stefan)
- - Renamed getallheaders() to apache_request_headers() and kept getallheaders()
- as an alias to it. Also added apache_response_headers() which returns the
- current response headers from Apache. (Rasmus)
- - Added missing AddRef() calls in the COM extension. This should fix weird
- behaviour (in particular with ADODB). (Harald)
- - Fixed segfault in version_compare(). (Stig)
- - Added compressed Flash MX files support to getimagesize(). (Derick)
- - Added ability to capture string offsets in preg_split() results.
- (David Brown, Andrei)
- - Fixed a crash bug in token_get_all(). (Andrei)
- - Implemented glob() for Unix/Win32. (Hartmut, Edin, Markus)
- - Added domxml_doc_set_root() to change the root node. (Lukas Schroeder)
- - Fixed a crash bug in stripslashes() when working in sybase mode. (Rasmus)
- - Added experimental support for Simplified Chinese, Traditional Chinese and
- Korean encodings into mbstring. (Rui)
- - Misc. Win32 mail() enhancements: support 'From:' header (msisolak@yahoo.com),
- support Bcc header, case-insensitive headers, enhanced error reporting,
- automatic proper line ending conversion, fixed crash with Cc, fixed buffer
- overflows with $header. (Markus)
- - Improved IMAP extension performance. (adam.kauffman@mindspring.com,
- rjs3@andrew.cmu.edu, Jon)
- - Added optional 5th parameter to domxml_xslt_process(). When set, profiling
- information is saved to the specified file. (chregu)
- - Added MD5 support for crypt() on Windows. (Edin)
- - Fixed resource bug in LDAP extension. (Stig Venaas)
- - Fixed crash in output buffering when buffer is overwritten in a callback.
- (Yasuo)
- - Added output_add_rewrite_var() and output_remove_rewrite_var() to inject
- and remove variables from the URL-Rewriter. (Thies)
- - The Windows build can now be configured more comfortably, for example
- when dealing with built-in extensions. (Sebastian)
- - Added large OID value (2^31 to 2^32) support for pg_lo_import(),
- pg_lo_unlink(), pg_lo_open() and pg_lo_export(). (Yasuo)
- - Fixed mixing OCIPlogon() and OCINLogon() to not leak Oracle-Sessions. (Thies)
- - Added php.ini options for EXIF extension to encode and decode Unicode/JIS
- user comments. (Marcus)
- - Changed the "-c" CLI/CGI option to allow both 'filename' and
- 'path to php.ini'. (Yasuo)
- - Added version information to the .dll and .exe files created under Windows.
- (jtate)
- - Added __FUNCTION__ and __CLASS__ constants. (Jani, Zend Engine)
- - Added optional 2nd parameter for pg_result_status() to specify return type.
- (Yasuo)
- - Added "log_errors_max_len" php.ini option which controls maximum length for
- error messages. (Marcus)
- - Added "ignore_repeated_errors" and "ignore_repeated_source" php.ini options
- which can be used to disable logging of repeated error messages. (Marcus)
- - Made pg_last_notice() work correctly. (Yasuo)
- - Added "pgsql.ignore_notice" and "pgsql.log_notice" php.ini options. (Yasuo)
- - Added "zlib.output_compression_level" php.ini option. (Stig)
- - Added support for --with-apxs build on Mac OS X / Darwin. (markonen)
- - Added support for dynamically loaded extensions on OS X / Darwin.
- NOTE: This requires Apache 1.3.25 or later. (kalowsky, markonen)
- - Fixed CR/LF processing in quoted_printable_decode() on Win32. (kir)
- - Made crack extension available on Win32. Cracklib libraries for Win32 are
- available at http://www.jtatesoftware.com/cracklib/. (jtate)
- - Added mysql_info() function. (Jan)
- - Added mysql_list_processes() and mysql_stat() functions. (Georg)
- - Fixed memory allocation problem on systems that have iconv() support in libc.
- (Yasuo)
- - Made var_dump() handle recursive structures better. (Yasuo, Derick)
- - Added exif_imagetype() function. (Marcus)
- - New improved build system. Among other improvements, replaces the slow
- recursive make with one global Makefile and eases the integration of proper
- dependencies. Automake is only needed for its aclocal tool. The build
- process is now more portable and less resource-consuming. (Sascha)
-
- 06 Sep 2002, Version 4.2.3
- - Disabled the fifth parameter in mail() when safe-mode is turned on. (Derick)
- - Enable UTF8 modifier support for PCRE on win32. (Wez, Edin)
- - Enabled strcoll() on win32. (Markus)
- - Fixed possible ASCII control char injection in mail(). (Stefan Esser)
- - Fixed a potential crash bug in import_request_variables() (Zeev)
- - Fixed several problems with directory functions on Windows. (Steph)
- - Fixed xbithack bug in Apache module. (Rasmus)
- - Fixed a bug that prevented touch() from working on various platforms. (Steph)
- - Fixed ob_gzhandler()'s handling of requests that do have the Accept-Encoding
- header, but do not allow compression. (Zeev)
- - Fixed several bugs in the multithreaded version that could cause random parse
- errors, especially on machines with multiple CPUs. (Zeev, Zend Engine)
- - Fixed a build problem in bcmath. (Alan)
- - Fixed several bzip2 issues. (Andrei, kalowsky)
- - Fixed several COM issues. (Harald)
- - Various exif fixes. (Marcus)
- - Fixed domxml_xslt_process() and domxml_get_element_by_id() and several
- other issues in DOMXML. (Christian)
- - Fixed DOMXML crash on removing previously created attributes. (Christian)
- - Fixed crash when converting $GLOBALS to an object. (Zeev, Zend Engine)
- - Fixed ImageCreateFromGD2Part() (Jani)
- - Fixed a build issue in the IMAP extension under IRIX. (kalowsky)
- - Fixed a bug in imap_last_error() (Jani)
- - Various mbstring fixes. (Yasuo, Rui)
- - Fixed a build problem in the mcal extension. (Jani)
- - Made MySQL rollback open transactions when the request ends. (Georg)
- - Fixed a crash in the shutdown order of the ODBC module. (kalowsky)
- - Fixed PCRE build problems. (troels@arvin.dk)
- - Fixed a crash in pg_lo_write() (Yasuo)
- - Fixed posix_isatty() and posix_ttyname(). (Markus)
- - Fixed accidental pg_lo_import() API change. (Yasuo)
- - Fixed ereg_replace() crash when the backreference number was greater than the
- number of captured subpatterns. (oliver@billix.franken.de)
- - Fixed array_rand() on thread-safe platforms such as Windows. (Edin)
- - Report the right exit code after a call to exit(). (Edin)
-
- 22 Jul 2002, Version 4.2.2
- - Fixed serious security vulnerability. (Stefan Esser)
-
- 13 May 2002, Version 4.2.1
- - Added safe-mode checks to show_source(), parse_ini_file() and rmdir(). Also
- fixed security problems with safe_mode_include_dir directive. (Rasmus)
- - Changed HTTP upload code to accept 0 byte file uploads. (Zeev)
- - Major update of domxml. New functions, better DOM compliance and bug fixes:
- * Changed the old $node->append_child() to $node->append_sibling() since
- the new append_child() behaves correctly (= W3C standard).
- * Added domxml functions:
- . domxml_elem_get_elements_by_tagname()
- . domxml_doc_get_elements_by_tagname()
- . domxml_doc_get_element_by_id()
- . domxml_elem_remove_attribute()
- . domxml_elem_get_attribute_node()
- * Fixed a segfault in domxml_unlink().
- * Added formatting option to domxml_dump_mem().
- (Uwe, jtate, Chregu)
- - Fixed a bug in socket_select() that could cause unexpected behavior when
- using a statement like $w = $e = array($sock); This change unfortunately
- prevents the use of constant values (e.g. NULL) for the socket array
- paramaters. Instead, use a temporary variable or an expression with the
- leftmost member being a temporary variable. ex.:
- socket_select($w, $r, $e = NULL, 10); (Jason)
- - Fixed crashes in the session serializer. (Stas)
- - Fixed malformed atime/mtime with touch(). (Yasuo)
- - Fixed a couple of bugs in array_sum() and array_merge(). (Andrei)
- - Fixed SJIS directory name handling under Windows. (Rui)
- - Fixed empty mb_output_handler() output when Content-Type is specified.
- (Yasuo)
- - Fixed the false logic in ext/session which made SID constant not to be
- defined when cookies are disabled. (Sascha)
- - Fixed possible crash bug in HTTP uploads. (Patch: Lucas Schroeder)
- - Fixed possible NULL-pointer dereferencing in the COM extension which
- caused 'Error in php_OLECHAR_to_char()' warnings on various places.
- Also modified the API to consistently return NULL in case of an error.
- (Alan, Harald)
- - Fixed a bug in the COM extension that caused outproc servers to 'hang'
- because of a missing Release() call. (Alan, Harald)
-
- 22 Apr 2002, Version 4.2.0
- - ATTENTION!! register_globals defaults to 'off' now !!!
- - Note: Apache2 support is EXPERIMENTAL.
- - PostgreSQL functions are renamed, but all old function names are available.
- Old function names will be available long enough. User can safely use old
- function names. (Yasuo)
- - Moved ext/mailparse to PECL. See http://thebrainroom.com/opensource/php/
- for more information and to download the extension. (Wez/Jim)
- - Fixed pg_last_notice() crash. (Yasuo)
- - Modified the mysql extension to disable 'LOAD LOCAL' when safe mode is
- enabled. (Jason)
- - Added CLI (command line interface) sapi which is more suitable for writing
- shell scripts. Some of the differences to CGI sapi are: no HTTP headers,
- plain text error messages, does not change working directory, have a new -r
- option which executes a piece of PHP code directly from the commmand line, etc.
- (Edin)
- - Fixed HTTP file upload support to handle big files better. (Jani)
- - Major modifications to the Sockets Extension and its API (Jason):
- . Fixed numerous bugs.
- . Added automatic host lookup capability to all functions that take addr's.
- example: socket_connect($sock, 'www.yahoo.com', 80);
- . Corrected and standardized host lookup errors
- . Modified socket_recv() behavior. [$r=socket_recv($sock, $buf, $len, $flags)]
- . Added socket_set_block() which changes a socket into blocking IO mode
- . Modified socket_last_error() to not clear the last error
- . Added socket_clear_error() which clears the last error on a socket
- . Removed all code pertaining to fd_sets (socket_fd_*)
- . Modified/Improved socket_select() to accept array of resources instead of
- fd_sets. example:
- <?php
- $wfds=$rfds=array($sock1, $sock2, $sock3, $sock7);
- $r=socket_select($rfds, $wfds, NULL, 1);
- print "Ready to read:\n"; var_dump($rfds);
- ?>
- - Fixed segfault in ibase_close() if user does not free the resultset.
- Bugs #15419, #15992. (daniela)
- - Added optional 3rd parameter "int encoding_mode" to gzencode() and fixed
- parameters to conform documentation. (Stefan)
- - Changed read_exif_data() to be an alias of exif_read_data(). (Marcus)
- - Added exif_tagname() function which returns the names of tags and
- exif_thumbnail() function to extract embedded thumbnails. (Marcus)
- - Fixed iconv support with FreeBSD. (kalowsky)
- - Cleaned up the posix extension: (Markus)
- . Removed unwanted warning messages
- . Added posix_errno() and posix_strerror() for fetching error messages
- . Changed the way posix_getgrnam() and posix_getgrgid() return their values
- (breaks BC but makes more sense)
- . Does not include functions in symbol table which aren't supported on host
- system.
- - Added TIFF support for getimagesize() and read_exif_data(). (Marcus)
- - Changed the Velocis extension namespace to Birdstep to reflect new product
- name. Added aliases for BC. (James)
- - Added safe_mode checks for opendir(). (jflemer)
- - Changed the 2nd parameter in pgsql_fetch_*() functions to support NULL if
- all 3 parameters are supplied, but you do not want to provide a row number.
- (Derick)
- - Improved iconv() when using libc's iconv. (Yasuo)
- - Added PHP_SAPI constant which contains the name of running SAPI. (Edin)
- - Added ob_get_status() which returns an array of buffers with their status.
- (Yasuo)
- - Fixed a crash bug in ob_end_*() functions. ob_end_*() will not delete
- buffers that may not be deleted. (Yasuo)
- - Added 3rd parameter "bool erase" to ob_start(). If FALSE, the buffer may not
- be deleted until script finishes. (Yasuo)
- - Changed ob_*() functions to return TRUE for success, FALSE for failure.
- (Yasuo)
- - Added sybase_ct support to dbx module. (Marc)
- - Fixed error message handling with PostgreSQL 7.2. (Rui)
- - Added object aggregation capability, see aggregation_*() functions. (Andrei)
- - Added debug_zval_dump() which works similarly to var_dump, but displays
- extra internal information such as refcounts and true type names. (Jason)
- - Added Andrei's tokenizer extension. (Stig)
- - Fixed a bug in the COM extension which caused php to crash in
- php_COM_get_ids_of_names(). (Paul, Harald)
- - Removed ext/satellite. It is now part of PEAR. (eriksson)
- - Changed php.ini directive 'safe_mode_include_dir' to accept a (semi)colon
- separated path (like 'include_path') rather than a single directory.
- (jflemer)
- - Added is_a() function that can be used to test whether object is of a certain
- class or is derived from it. (Andrei, Zend Engine)
- - Added optional parameter to highlight_string() and highlight_file() which
- makes these functions to return a highlighted string instead of dumping
- it to standard output. (Derick)
- - Added EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS flags to extract(). (Rasmus)
- - Fixed a segfault in pg_pconnect(). If PostgreSQL server is restarted, broken
- connection is detected and reconnected. (Yasuo)
- - Fixed --enable-safe-mode configure option. (Yasuo)
- - Added function domxml_dump_node($doc,$node). Dumps a node plus all children
- into a string. (chregu)
- - Added function domxml_node_get_content(). (chregu)
- - Added function domxml_dump_file($filename,[$compression]). Dumps XML to
- a file and uses compression, if specified. (chregu)
- - Added exslt integration to domxml extension (http://exslt.org for details).
- Configure with --with-dom-exslt[=DIR] (and --with-dom-xslt).
- (chregu,jaroslaw)
- - Fixed session_unset() to not touch any globals if register_globals is off.
- (Thies)
- - Added 3 new optional parameters to OCIFetchStatement(). They control
- the number of rows to skip at the beginning of the cursor, the
- maximun numer of rows that should be fetched and the format of the
- returned array. (Thies)
- - Updated the XSLT extension to support Sablotron 0.8. (Petr Cimprich)
- - Fixed a bug in preg_match() and preg_match_all() when matching strings
- contain null bytes. (Andrei)
- - Added xpath_register_ns() function. This makes it possible to issue XPath
- queries with namespaces like for example: "//namespace:sampletag".
- (Chris Jarecki)
- - Added multi-byte enabled regular expression functions. (Rui)
- - Added optional second parameter to count() which can be used to specify
- either normal or recursive counting. (patch by Vlad Bosinceanu <glipy@fx.ro>)
- - Added mb_get_info() to get internal settings of mbstring. (Rui)
- - Added async query functions to PostgreSQL module. (Yasuo)
- - Added pg_copy_to()/pg_copy_from() for PostgreSQL module. (Youichi, Yasuo)
- - Added IPv6 support for FTP extension. (Stig Venaas)
- - Improved the speed of wordwrap() significantly. (Jim)
- - Fixed pow()'s incorrect behaviour when dealing with powers of 0. (Jim)
- - Added is_finite(), is_infinite() and is_nan(). (Jim)
- - Fixed segfault in wordwrap() when wrapping to zero width and using
- multi-character break or trying to force cut (bug #12768). (Jim)
- - Fixed several bugs in dbase extension (dbase_pack() truncate file to right
- size, fix 6852 #1 and 6852 #2). (Vlad)
- - Fixed bug in krsort() where an extra character was being compared. (Andi)
- - Fixed bug that made pspell include pspell.h from a wrong location. (Vlad)
- - Added function overload in mbstring to add multibyte support for
- string and mail functions. (Rui)
- - Added flags parameter to preg_grep(). The only flag currently is
- PREG_GREP_INVERT that will make the function return entries that
- did not match. (Andrei)
- - Fixed several crash bugs in the xslt extension. (Markus, Derick)
- - Fixed problem with dbase not returning very large (larger than long)
- integers properly. (Vlad)
- - Added concepts to IRCG: bailout-on-trivial issue, write output to
- files, fetch a resource upon connection end. (Sascha)
- - Fixed POST-related bugs in thttpd, added QUERY_STRING, HTTP_HOST,
- HTTP_ACCEPT_LANGUAGE to the script environment, improved patch
- to send correct MIME types, and added support for /nocache/. (Sascha)
- - Fixed several bugs and memleaks in the domxml extension. (Markus)
- - Added var_export() which outputs a representation of a variable as reusable
- PHP code. (Derick)
- - Added -w option to the CGI-version to strip all comments and whitespace
- from the script. (Thies)
- - Added support for SO_RCVTIMEO and SO_SNDTIMEO to ext/sockets. (Jason)
- - Added ob_get_level() which returns the nesting level of the output buffering
- mechanism. (Yasuo, Derick)
- - Added ob_flush() and ob_clean() functions which flush and clean an output
- buffer without destroying the buffer. (Derick)
- - Added new optional parameter to mysql_connect() which forces a new database
- link to be created. (Markus, Derick)
- - Added ldap_sort() function. (Stig Venaas)
- - Added md5_file() function which calculates the MD5 sum of a file.
- Patch by Alessandro Astarita <aleast@capri.it> (Derick)
- - Added support for parsing recordsets contained in WDDX packets. (Andrei)
- - Renamed key_exists() to array_key_exists(). (Derick)
- - Fixed ImageColorsForIndex() and ImageColorAt() to work for TrueColor
- images. (Rasmus)
- - Added support for bind_textdomain_codeset(). (rudib@email.si)
- - Added generic Win 32 API extension. (jmoore)
- - Removed warning message about NONEXISTENT character set from mysql_connect()
- when the server's default character set != latin1. (Mysql Team)
- - Added Direct I/O extension for lowlevel access to the POSIX layer. (Sterling)
- - Added SAPI module for the WebJames server on RISC OS. (Alex Waugh)
- - Fixed ldap_add() and ldap_modify() functions to throw a warning with illegal
- value arrays. Previously segfaulted or added wrong value. (Stig Venaas)
- - Added udm_check_charset() function into mnoGoSearch extension. (gluke)
- - Fixed mnoGoSearch extension to support mnogosearch-3.2.x. (gluke)
- - Made fbsql_num_rows() to return the correct value on all select statements.
- (Frank)
- - Added array_chunk() function which splits an array into chunks of specified
- size. (Andrei)
- - Fixed $HTTP_RAW_POST_DATA to be populated on a missing content-type when
- always_populate_raw_post_data is on. (Rasmus)
- - Added session_cache_expire() function. (patch by anuradha@gnu.org) (Andrei)
- - Added array_fill() function. (Rasmus)
- - Made Authorization header to be hidden from phpinfo() output in safe_mode.
- (Rasmus)
- - Re-instated safe-mode realm mangling. (Rasmus)
- - Fixed a bug in preg_replace() that would change the type of the replacement
- array entries to string. (Andrei)
- - Added user-space object overloading extension. (Andrei)
- - Added ldap_start_tls() function. (Stig Venaas, patch by kuenne@rentec.com)
- - Changed rand() and mt_rand() to be seed automatically if srand() or
- mt_srand() has not been called. (Sterling)
- - Changed the seed options to srand() and mt_srand() to be optional. If the
- seed is not specified the most random seed possible is generated. (Sterling)
- - Added array_change_key_case() function which returns an array with all
- string keys lowercased or uppercased. (Edin)
- - Added parameter to ircg_pconnect to suppress treating non-fatal errors
- as fatal, and added conversion of Windows quotes to ". (Sascha)
- - Added pcntl_exec() function which behaves similar to the system execve.
- (Jason)
- - Fixed segfault and check for truecolor image in ImageColorAt(). (Rasmus)
- - Fixed nl2br() to handle all styles of line-endings in one string.
- (Boian, Derick)
- - Added mcrypt_generic_deinit() to replace mcrypt_generic_end(). (Derick)
- - Added apache_setenv() function for injecting variables into Apache's
- subprocess_env table. (Rasmus)
- - Added support for 'int', 'bool', 'float' and 'null' in settype(). (Jeroen)
- - Added IPv6 support to gethostbyaddr().
- (Patch by Matthias Wimmer <matthias@charente.de> and venaas)
- - Fixed LONG_VARCHAR type crashing in ODBC extension. Patch by Walter Franzini.
- (kalowsky)
- - Changed in_array() and search_array() to allow the needle to be an array
- in itself. (Andrei)
- - Added ini_get_all() function which returns all registered ini entries
- or entries for the specified extension. (Jani)
- - Added mailparse_uudecode_all() which extracts all uuencoded attachments.
- (Wez)
- - Added support for chinese encodings in htmlentities() and htmlspecialchars().
- (Patch by Alan Knowles <alan_k@hklc.com> and Wez)
- - Improved support for autoconf-2.50+/libtool 1.4b+. (Jan Kneschke, Sascha)
-
- 27 Feb 2002, Version 4.1.2
- - Fixed start up failure when mm save handler is used and there are multiple
- SAPIs working at the same time. (Yasuo)
- - Fixed the Roxen SAPI. (Yasuo)
- - Fixed a buffer overflow in the RFC-1867 file upload code. (Stefan)
- - Fixed a crash bug in the session module. (Yasuo)
- - Fixed a crash bug in the pspell module. (Yasuo)
- - Changed the default output encoding of mbstring 'pass' to fix
- initialization problem. (Rui)
-
- 26 Dec 2001, Version 4.1.1
- - Fixed incompatibility with Windows .NET / IIS 6 - may improve stability
- under other versions of IIS. (Zeev)
- - Fixed bug that caused crashes or error notices on shutdown on threaded
- platforms. (Zeev)
- - Fixed several crash bugs in the xslt extension. (Markus, Derick)
- - Fixed problem with dbase not returning very large (larger than long)
- integers properly. (Vlad)
- - Fixed several bugs and memleaks in the domxml extension. (Markus)
- - Fixed bug in gmmktime() which was one hour off during standard time -
- bug #9878. Patch by bfoddy@mediaone.net. (jmoore)
- - Fixed bug in gmdate() timezone handling on Windows - bug #13885. (jmoore)
- - Fixed several crash bugs in the mcrypt extension. (Derick)
- - Made the mcrypt extension compile with the libmcrypt 2.2 series again.
- (Sterling)
- - Fixed a bug where the is_file() family of functions would in-correctly give
- an error when they were given filenames that didn't exist. (Sterling)
- - Fixed a bug in the strtotime() function where it was incorrectly recognizing
- GMT +0100 and GMT -0100. (Derick)
-
- 10 Dec 2001, Version 4.1.0
- - Fixed return values for strtok (Bug #13866) (jmoore)
- - Worked around a bug in the MySQL client library that could cause PHP to hang
- when using unbuffered queries. (Zeev)
- - Fixed a bug which caused set_time_limit() to affect all subsequent requests
- to running Apache child process. (Zeev)
- - Removed the sablotron extension in favor of the new XSLT extension.
- (Sterling)
- - Fixed a bug in WDDX deserialization that would sometimes corrupt the root
- element if it was a scalar one. (Andrei)
- - Make ImageColorAt() and ImageColorsForIndex() work with TrueColor images.
- (Rasmus)
- - Fixed a bug in preg_match_all() that would return results under improper
- indices in certain cases. (Andrei)
- - Fixed a crash in str_replace() that would happen if search parameter was an
- array and one of the replacements resulted in subject string being empty.
- (Andrei)
- - Fixed MySQL extension to work with MySQL 4.0. (Jani)
- - Fixed a crash bug within Cobalt systems. Patch by tomc@tripac.com. (Jani)
- - Bundled Dan Libby's xmlrpc-epi extension.
- - Introduced extension version numbers. (Stig)
- - Added version_compare() function. (Stig)
- - Fixed pg_last_notice() (could cause random crashes in PostgreSQL
- applications, even if they didn't use pg_last_notice()). (Zeev)
- - Fixed DOM-XML's error reporting, so E_WARNING errors are given instead of
- E_ERROR error's, this allows you to trap errors thrown by DOMXML functions.
- (Sterling)
- - Fixed a bug in the mcrypt extension, where list destructors were not
- properly being allocated. (Sterling)
- - Better Interbase blob, null and error handling. (Patch by Jeremy Bettis)
- - Fixed a crash bug in array_map() if the input arrays had string or
- non-sequential keys. Also modified it so that if a single array is passed,
- its keys are preserved in the resulting array. (Andrei)
- - Fixed a crash in dbase_replace_record. (Patch by robin.marlow@dps-int.com)
- - Fixed a crash in msql_result(). (Zeev)
- - Added support for single dimensional SafeArrays and Enumerations.
- Added com_isenum() function to check if a component implements an
- enumeration. (Alan, Harald)
- - Fixed a bug in dbase_get_record() and dbase_get_record_with_names().
- boolean fields are now returned correctly.
- Patch by Lawrence E. Widman <widman@cardiothink.com> (Jani)
- - Added --version option to php-config. (Stig)
- - Improved support for thttpd-2.21b by incorporating patches for all known
- bugs. (Sascha)
- - Added ircg_get_username, a roomkey argument to ircg_join, error fetching
- infrastructure, a tokenizer to speed up message processing, and fixed
- a lot of bugs in the IRCG extension. (Sascha)
- - Improved speed of the serializer/deserializer. (Thies, Sascha)
- - Floating point numbers are better detected when converting from strings.
- (Zeev, Zend Engine)
- - Replaced php.ini-optimized with php.ini-recommended. As the name implies,
- it's warmly recommended to use this file as the basis for your PHP
- configuration, rather than php.ini-dist. (Zeev)
- - Restore xpath_eval() and php_xpathptr_eval() for 4.0.7. There
- are still some known leaks. (Joey)
- - Added import_request_variables(), to allow users to safely import form
- variables to the global scope (Zeev)
- - Introduced a new $_REQUEST array, which includes any GET, POST or COOKIE
- variables. Like the other new variables, this variable is also available
- regardless of the context. (Andi & Zeev)
- - Introduced $_GET, $_POST, $_COOKIE, $_SERVER and $_ENV variables, which
- deprecate the old $HTTP_*_VARS arrays. In addition to be much shorter to
- type - these variables are also available regardless of the scope, and
- there's no need to import them using the 'global' statement. (Andi & Zeev)
- - Added vprintf() and vsprintf() functions that allow passing all arguments
- after format as an array. (Andrei)
- - Added support for GD2 image type for ImageCreateFromString(). (Jani)
- - Added ImageCreateFromGD(), ImageCreateFromGD2(), ImageCreateFromGD2part(),
- ImageGD() and ImageGD2() functions. (Jani)
- - addcslashes now warns when charlist is invalid. The returned string
- remained the same (Jeroen)
- - Added optional extra argument to gmp_init(). The extra argument
- indicates which number base gmp should use when converting a
- string to the gmp-number. (Troels)
- - Added the Cyrus-IMAP extension, which allows a direct interface to Cyrus'
- more advanced capabilities. (Sterling)
- - Enhanced read_exif_data() to support multiple comment tags. (Rasmus)
- - Fixed a crash bug in array_map() when NULL callback was passed in. (Andrei)
- - Change from E_ERROR to E_WARNING in the exif extension (Rasmus)
- - New pow() implementation, which returns an integer when possible,
- and warnings on wrong input (jeroen)
- - Added optional second parameter to trim, chop and ltrim. You can
- now specify which characters to trim (jeroen)
- - Hugely improved the performance of the thread-safe version of PHP, especially
- under Windows (Andi & Zeev)
- - Improved request-shutdown performance significantly (Andi & Zeev, Zend
- Engine)
- - Added a few new math functions. (Jesus)
- - Bump bundled expat to 1.95.2 (Thies)
- - Improved the stability of OCIPlogon() after a database restart. (Thies)
- - Fixed __FILE__ in the CGI & Java servlet modes when used in the main script.
- It only worked correctly in included files before this fix (Andi)
- - Improved the Zend hash table implementation to be much faster (Andi, Zend
- Engine)
- - Updated PHP's file open function (used by include()) to check in the calling
- script's directory in case the file can't be found in the include_path (Andi)
- - Fixed a corruption bug that could cause constants to become corrupted, and
- possibly prevent resources from properly being cleaned up at the end of
- a request (Zeev)
- - Added optional use of Boyer-Moore algorithm to str_replace() (Sascha)
- - Fixed and improved shared-memory session storage module (Sascha)
- - Add config option (always_populate_raw_post_data) which when enabled
- will always populate $HTTP_RAW_POST_DATA regardless of the post mime
- type (Rasmus)
- - Added support for socket and popen file types to ftp_fput (Jason)
- - Fixed various memory leaks in the LDAP extension (Stig Venaas)
- - Improved interactive mode - it is now available in all builds of PHP, without
- any significant slowdown (Zeev, Zend Engine)
- - Fixed crash in iptcparse() if the supplied data was bogus. (Thies)
- - Fixed return value for a failed snmpset() - now returns false (Rasmus)
- - Added hostname:port support to snmp functions (nbougues@axialys.net, Rasmus)
- - Added fdf_set_encoding() function (Masaki YATSU, Rasmus)
- - Reversed the destruction-order of resources. This fixes the reported OCI8
- "failed to rollback outstanding transactions!" message (Thies, Zend Engine)
- - Added option for returning XMLRPC fault packets. (Matt Allen, Sascha
- Schumann)
- - Improved range() function to support range('a','z') and range(9,0) types of
- ranges. (Rasmus)
- - Added getmygid() and safe_mode_gid ini directive to allow safe mode to do
- a gid check instead of a uid check. (James E. Flemer, Rasmus)
- - Made assert() accept the array(&$obj, 'methodname') syntax. (Thies)
- - Made sure that OCI8 outbound variables are always zero-terminated. (Thies)
- - Fixed a bug that allowed users to spawn processes while using the 5th
- parameter to mail(). (Derick)
- - Added nl_langinfo() (when OS provides it) that returns locale.
- - Fixed a major memory corruption bug in the thread safe version. (Zeev)
- - Fixed a crash when using the CURLOPT_WRITEHEADER option. (Sterling)
- - Added optional suffix removal parameter to basename(). (Hartmut)
- - Added new parameter UDM_PARAM_VARDIR ha in Udm_Set_Agent_Param() function to
- support alternative search data directory. This requires mnogoSearch 3.1.13
- or later.
- - Fixed references in sessions. This doesn't work when using the WDDX
- session-serializer. Also improved speed of sessions. (Thies)
- - Added new experimental module pcntl (Process Control). (Jason)
- - Fixed a bug when com.allow_dcom is set to false. (phanto)
- - Added a further parameter to the constructor to load typelibs from file when
- instantiating components (e.g. DCOM Components without local registration).
- (phanto)
- - Added the possibility to specify typelibs by full name in the typelib file
- (Alan Brown)
- - Renamed the ZZiplib extension to the Zip extension, function names have also
- changed accordingly, functionality, has stayed constant. (Sterling)
- - Made the length argument (argument 2) to pg_loread() optional, if not
- specified data will be read in 1kb chunks. (Sterling)
- - Added a third argument to pg_lowrite() which is the length of the data to
- write. (Sterling)
- - Added the CONNECTION_ABORTED, CONNECTION_TIMEOUT and CONNECTION_NORMAL
- constants. (Zak)
- - Assigning to a string offset beyond the end of the string now automatically
- increases the string length by padding it with spaces, and performs the
- assignment. (Zeev, Zend Engine)
- - Added warnings in case an uninitialized string offset is read. (Zeev, Zend
- Engine)
- - Fixed a couple of overflow bugs in case of very large negative integer
- numbers. (Zeev, Zend Engine)
- - Fixed a crash bug in the string-offsets implementation (Zeev, Zend Engine)
- - Improved the implementation of parent::method_name() for classes which use
- run-time inheritance. (Zeev, Zend Engine)
- - Added 'W' flag to date() function to return week number of year using ISO
- 8601 standard. (Colin)
- - Made the PostgreSQL driver do internal row counting when iterating through
- result sets. (gvz@2scale.net)
- - Updated ext/mysql/libmysql to version 3.23.39; Portability fixes, minor
- bug fixes. (tim@mysql.com)
- - Added get_defined_constants() function to return an associative array of
- constants mapped to their values. (Sean)
- - New mailparse extension for parsing and manipulating MIME mail. (Wez)
- - Define HAVE_CONFIG_H when building standalone DSO extensions. (Stig)
- - Added the 'u' modifier to printf/sprintf which prints unsigned longs.
- (Derick)
- - Improved IRIX compatibility. (Sascha)
- - Fixed crash bug in bzopen() when specifying an invalid file. (Andi)
- - Fixed bugs in the mcrypt extension that caused crashes. (Derick)
- - Added the IMG_ARC_ROUNDED option for the ImageFilledArc() function, which
- specified that the drawn curve should be rounded. (Sterling)
- - Updated the sockets extension to use resources instead of longs for the
- socket descriptors. The socket functions have been renamed to conform with
- the PHP standard instead of their C counterparts. The sockets extension is
- now usable under Win32. (Daniel)
- - Added disk_total_space() to return the total size of a filesystem.
- (Patch from Steven Bower)
- - Renamed diskfreespace() to disk_free_space() to conform to established
- naming conventions. (Jon)
- - Fixed #2181. Now zero is returned instead of an unset value for
- 7-bit encoding and plain text body type. (Vlad)
- - Fixed a bug in call_user_*() functions that would not allow calling
- functions/methods that accepted parameters by reference. (Andrei)
- - Added com_release($obj) and com_addref($obj) functions and the related class
- members $obj->Release() and $obj->AddRef() to gain more control over the used
- COM components. (phanto)
- - Added an additional parameter to dotnet_load to specify the codepage (phanto)
- - Added peak memory logging. Use --enable-memory-limit to create a new Apache
- 1.x logging directive "{mod_php_memory_usage}n" which will log the peak
- amount of memory used by the script. (Thies)
- - Made fstat() and stat() provide identical output by returning a numerical and
- string indexed array. (Jason)
- - Fixed memory leak upon re-registering constants. (Sascha, Zend Engine)
-
- 23 Jun 2001, Version 4.0.6
- - Fixed memory fragmention problem which could lead to web server processes
- growing much more than they should. (Andi, Zend Engine)
- - Made $HTTP_SESSION_VARS['foo'] and $foo be references to the same value
- when register_globals is on. (Andrei)
- - Fixed disk_free_space() and disk_total_space() under FreeBSD. (Jon)
- - Fixed readfile/passthru losing resources during connection abort (Sascha)
- - Fixed bug in the mcrypt extension that caused segfaults when using a key
- that is too large for the used algorithm, and a bug that caused
- mcrypt_generic() to segfault PHP (Derick)
- - Fixed getopt so that it accepts command line arguments in the form
- -<opt><arg> and -<opt> <arg>. (Jmoore)
- - Fixed race in writing session files (Sascha)
- - Fixed a possible crash in the PHP CGI when no input file is
- specified (Zeev)
- - Added is_callable() function that can be used to find out whether
- its argument is a valid callable construct. (Andrei)
- - Fixed a rare possible crash when generating extended information. (Dmitri
- Dmitrienko, Zend Engine)
- - Improved virtual() to support PHP-enabled URIs. (Zeev)
- - Fixed undefined behavior when using floating point keys in array()
- expressions. (Zeev, Zend Engine)
- - Fixed a possible crash in case of parse errors in include files or eval
- statements. (Zeev, Zend Engine)
- - Added --with-layout configure option. (Stig)
- - Improved interactive mode - supports function calls, and works in
- multithreaded builds. (Zeev, Zend Engine)
- - Fixed a crash bug in interactive mode. (Zeev, Zend Engine)
- - Added pg_last_notice() function. (Rasmus from suggestion by Dirk@rackspace.com)
- - Fixed a bug in preg_split() that would incorrectly limit the number of
- results when used along with PREG_SPLIT_NO_EMPTY flag. (Andrei)
- - Added connection error support to mysql_error() and mysql_errno(). (Jason)
- - Added support to getimagesize to return dimensions of BMP and PSD
- files. (Derick)
- - Added heuristic to kill stale IRC connections, message scanner caching, and
- nickname escaping to IRCG, suppress option to ircg_msg(), and statistics to
- IRCG phpinfo() output. (Sascha)
- - Added Japanese multibyte string functions support. (Rui)
- - Added Mac OS X "\r" line ending support. (Andi, Zend Engine)
- - Fixed a bug regarding the $PHP_SELF being incorrectly registered when
- force-cgi-redirect was not enabled. (Sterling)
- - pfpro extension now supports version 3 of the Verisign SDK. (John Donagher)
- - Udm_Cat_List and Udm_Cat_Path functions has been added.
- - Added key_exists() to check if a given key or index exists in an
- array or object. (David Croft)
- - Modify the cURL extension to compile only with the latest cURL release.
- Backwards compatibility with regards to the extension api has not been
- broken. (Sterling)
- - Added the ability to use user-defined callbacks with cURL. (Sterling)
- - Added the SSL_VERIFYPEER, CAINFO, MAXREDIRS, FILETIME, RANDOM_FILE, EGDSOCKET
- and CONNECTTIMEOUT options to curl_setopt(). (Sterling)
- - Added support for persistent connections with cURL. (Sterling)
- - Fixed a problem in cURL with file descriptors being allocated, but never
- closed. (Sterling)
- - Fixed interactive mode (-a). It works again with the same limitations it
- has always had. (Andi, Zend Engine)
- - Improved memory manager to use less memory and provide better memory overflow
- detection abilities in debug mode. (Andi, Zend Engine)
- - Fixed resource leaks when resources were being cast to numbers. (Zeev, Zend
- Engine)
- - Fixed foreach() to not crash when being sent an invalid argument. (Andi, Zend
- Engine)
- - Fixed a bug in opendir() under Windows when trying to open a non-exisiting
- directory. (Andi)
- - Fixed popen() and the exec family under Win32 (Unable to fork issue). (Daniel)
- - Make the printf family of functions binary clean. (Rasmus)
- - Fixed WDDX serialization to HTML-escape key/variable names so as not to
- break the XML packet. (Andrei)
- - Made WDDX extension enabled by default. (Andrei)
- - Added -C command-line option to avoid chdir to the script's directory. (Stig)
- - Fixed a bug with /e modifier in preg_replace(), that would not correctly
- replace two-digit references if single digit references were present
- before them. This fixed bug #10218. (Andrei)
- - Added temporary LOB support in OCI8. (Patch by David Benson)
- - Fixed crash in pathinfo()
- - OCI8 now supports binding of collections. (Patch by Andy Sautins
- <asautins@veripost.net>)
- - Added GD 2.0.1 support for truecolor and alpha channels, plus some other gd
- functions, both old and new - see docs for more info. (Wez)
- - Added S/MIME sign/verify encrypt/decrypt functions to openssl extension,
- along with some other certificate manipulation and interrogation functions.
- See docs for more info. (Wez)
- - printf argnum (parameter swapping) support. (Morten Poulsen, Rasmus)
- - Add DIRECTORY_SEPARATOR constant ('/' on UNIX, '\' on Windows). (Stig)
- - Added small change to php_odbc module, to check for failed SQLDisconnects
- and to close any outstanding transactions if the call fails, then disconnect
- again. (lurcher)
- - Modified get_parent_class() and get_class_methods() to accept a class name as
- well as a class instance. (Andrei, Zend Engine)
- - Added support for UNC style paths. (\\server\share\file,
- //server/share/file). (Daniel, TSRM)
- - Added dbx module (database abstraction) to the repository. (Marc)
- - Using ITypeInfo instead of IDispatch if possible. This makes DCOM calls
- and even COM calls much faster.
- All ini settings are now prefixed by 'com.'.
- Now you need not provide a path to the file containing the typelib, you can
- also provide the GUID of the TypeLib - entry or an IID for preloading
- type - information. (Harald)
- - Rewrite of domxml. It's now mostly DOM Level 2 conform. (Uwe)
- - Added array_map() function that applies a callback to the elements
- of given arrays and returns the result. It can also be used with a
- null callback to transpose arrays. (Andrei)
- - Added array_filter(), which allows filtering of array elements via
- the specified callback. (Andrei)
- - Fixed all relevant array functions to avoid moving the internal array
- pointer during operations. (Andrei)
- - Added mysql_unbuffered_query(), which is useful for very large result sets.
- (Zeev)
-
- 30 Apr 2001, Version 4.0.5
- - Added new php.ini directive: arg_separator.input which is used to tell
- PHP which characters are considered as argument separators in URLs.
- Renamed php.ini directive: arg_separator -> arg_separator.output (Jani)
- - Added FastCGI SAPI module. (Ben Mansell)
- - Added array_reduce(), which allows iterative reduction of an array
- to a single value via a callback function. (Andrei)
- - The imageloadfont function of the gd extension should be not platform
- dependent after this fix. (alex@zend.com)
- - Fixed a compatibility problem in some file functions (fgets, fputs, fread,
- fwrite). The ANSI standard says that if a file is opened in read/write
- mode, fseek() should be called before switching from reading to writing
- and vice versa. (alex@zend.com)
- - Fixed argument checking for call_user_func* functions and allowed
- specifying array($obj, 'method') syntax for call_user_func_array. (Andrei)
- - Fixed parent::method() to also work with runtime bindings.
- (Zeev, Zend Engine)
- - Implemented high-performance zlib-based output compression - see
- zlib.output_compression INI directive. (Zeev)
- - Improved ob_gzhandler() to support chunked output buffering - it's
- recommended to use it with 4KB chunks. (Zeev)
- - Fixed chunked output buffering. (Zeev)
- - Forced call_user_method() and call_user_method_array() to take the
- object argument by reference. (Andrei)
- - Fixed binding of ROWIDs in OCI8. (Thies)
- - Added PEAR/Cache as a generic Caching System. (Sebastian, PEAR/Cache)
- - Added IMAP quota support (imap_set_quota, imap_get_quota), enabled/added via
- c-client2000. (kalowsky)
- - Upgraded PCRE to version 3.4. (Andrei)
- - Added array_search which works similar to in_array but returns
- the key instead of a boolean. (jason@php.net)
- - Fixed pgsql transaction support. (Stig, PEAR/DB)
- - Added new object VARIANT() to encapsulate values for use with
- the COM and DOTNET module. Therefore it is now possible to pass
- values by reference, convert php values to extended variant types (currency,
- date, idispatch, iunknown, ...) and define the codepage that should
- be used for unicode - conversion.
- - Improved overall speed of IRCG, added URL handling to message scanner.
- (Sascha)
- - Fixed some modules to allow using output-buffering. (Thies)
- - Added the chroot() function. (Derick)
- - PostgreSQL now does a rollback at the end of a request on every
- persistent connection. This is done by doing an "empty" transaction
- on the connection. This was advised by someone from the PostgreSQL
- core-team. (Thies)
- - Fixed PostgeSQL pg_connect() bug. We would sometimes close the default
- link by accident. (Patch by: aja@nlgroup.ca)
- - Improved OCI8 dead-session detection. (Patch by: George Schlossnagle)
- - Fixed get_meta_tags() multiline bug #4556. (Sean)
- - Prefer random() over *rand48(). (JimJag)
- - Sped up WDDX serialization 2x. (Andrei)
- - Added a new parameter to mail() which appends aditional command line
- parameters to the mail program. (Derick)
- - Added Udm_Clear_Search_Limits mnoGoSearch extension function. (gluke)
- - Fixed mnogosearch protos. Fixed mnogosearch functions return values.
- A bug with capital letters break search has been fixed. (gluke)
- - Static methods can now be called via call_user_method_* functions, e.g.
- call_user_method('method', 'class'), and also array('class', 'method')
- constructs (for array_walk(), for example). (Andrei, Zend Engine)
- - microtime() under Windows now returns accurate values. (James)
- - Added PREG_SPLIT_DELIM_CAPTURE flag to preg_split() that allows for Perl-like
- functionality of capturing parenthesized delimiter expression. (Andrei)
- - Fixed strip_tags() to not strip a lone > character. (Rasmus)
- - When using the ob_gzhandler() PHP now automagically also sets the
- Content-Lengh correctly which enables browsers to use the HTTP
- Keep-Alive feature. (Thies)
- - Improved handling of preg_replace() /F modifier so that it's possible to
- specify array($obj, 'method') construct as a replacement function. (Andrei)
- - Added mysql_get_client_info(), mysql_get_server_info(),
- mysql_get_proto_info(), and mysql_get_host_info() functions. (Sean)
- - Major change of the php pdf api. It could break some functions though
- backwards compatibility was tried to maintain. Adding some still
- missing functions as well. (Uwe)
- - Added mnoGoSearch extension - http://search.mnogo.ru. (Sergey K)
- - Allow URL encoding in DB usernames and passwords. (Stig, PEAR)
- - Added raiseError and setErrorHandling methods to PEAR class. (Stig, PEAR)
- - Added support for converting images from JPG/PNG on the fly with the GD
- extension, which is usefull for creating dynamic WAP-sites. (Derick)
- - Updated ext/mysql/libmysql to version 3.23.32; bug fixes. (tim@mysql.com)
- - Fixed possible crash in all (non-pcre) regex functions. (Thies)
- - Improved str_replace() to accept an array for any parameter - similar
- to preg_replace(). (Andrei)
- - Fixed extract() to properly prefix numeric keys when EXTR_PREFIX_ALL is
- used. (Andrei)
- - Added EXTR_PREFIX_INVALID flag to extract() to automatically prefix
- string keys that do not constitute valid variable names. (Andrei)
- - BeOS patch from svanegmond@bang.dhs.org, modified somewhat by Rasmus.
- - Fixed the Apache module to overwrite PATH_TRANSLATED with SCRIPT_FILENAME,
- only if PATH_TRANSLATED is not previously set. (Zeev)
- - Fixed crash bug in highlight_string(). (Rasmus)
- - Added URL support for getimagesize() function. (Jani)
- - Added xslt_set_scheme_handler() function. (carmelo@akooe.com)
- - Added the pg_lolseek and pg_lotell functions. (Derick)
- - Fixed wrong breaking with the wordwrap function. (Derick)
- - Fixed 'O' and 'r' flags of date() to have correct sign for timezone
- offset. (Andrei)
- - Changed 'Z' flag to date() to always return timezone offset with
- negative sign if it's west of UTC. (Andrei)
- - Added the HTML_Processor class which provides common functions for
- processing HTML. (Sterling)
- - Added localeconv() and strcoll() functions for localization. (Sean)
- - Added the xslt_set_base function. (Sterling)
- - Added support for Zeus 3.3.8.
- - Added odbc_error() and odbc_errormsg() functions. (Stig)
- - New extension for vpopmail - http://www.inter7.com/vpopmail,
- give it a try, but keep in mind that it is not ready for production
- environments. (David Croft, Boian Bonev)
- - Added sybase_get_last_message() to the Sybase CT module. (Jan Fedak)
- - Made ldap_list(), ldap_read() and ldap_search() do parallel search when
- first parameter is an array of link identifiers. (Stig Venaas)
- - Made fopen() of HTTP URL follow redirects, $http_response_header will
- contain all headers with empty string as delimiter. (Stig Venaas)
- - Added Console_Getopt class for parsing command-line args. (Andrei, PEAR)
- - Added an experimental version of the ZZipLib extension which provides the
- ability to read zip files. (Sterling)
- - Allow access to uploaded files in safe_mode. Beware that you can only
- read the file. If you copy it to new location the copy will not have the
- right UID and you script won't be able to access that copy. (Thies)
- - Changed extract() to check that prefixed name is a valid one. (Andrei)
- - Changed extract() to return the number of variables extracted. (Andrei)
- - Added ldap_rename() function. (Stig Venaas)
- - Made ldap_set_option() support controls. (Stig Venaas)
- - Changed ldap_search() and added functions ldap_parse_result(),
- ldap_first_reference(), ldap_next_reference() and ldap_parse_reference()
- to cope with LDAPv3 stuff like referrals and references. (Stig Venaas)
- - Fixed date('r') overflow.
- - Made the php.ini path reported in phpinfo() always point to the absolute
- path that was opened. (Zeev)
- - Made the INI mechanism thread safe. (Zeev, Zend Engine)
- - Changed setlocale() to use LC_* constants. (Jani)
- - ctype functions now follow the extension naming conventions. (Hartmut)
- - Added iconv() function (using libc or libiconv). (Stig)
- - Added ODBC_TYPE constant. (Stig)
- - Added the call_user_method_array function which allows you to call a method
- with an arbitrary number of parameters. (Sterling)
- - ext/odbc: IBM DB2 patch by Walter Franzini. <walter@sys-net.it>
- - Added extension for the cracklib library. (Alexander Feldman)
-
- 19 Dec. 2000, Version 4.0.4
- - Allow assigning a newly created object by reference. This is needed only if
- your constructor makes other data structures reference the $this object (for
- example, $GLOBALS["foobar"] =& $this;)
- The new syntax is $obj =& new MyClass(); (Andi, Zend Engine)
- - Allow for three expression types to be sent to functions which are requesting
- the function argument to be passed by reference (only c. was previously
- supported):
- a. func(new myclass());
- b. func(func2()); where func2() returns a reference, i.e. is defined as
- function &func2(...)
- {
- ...
- }
- c. func($var); where func() is defined as function func(&$var) {...}
- You CAN'T count on any other expressions to be passable by reference.
- (Andi, Zend Engine)
- - Made ldap_get_entries() return an array even if there are no entries
- in search result. (Jani)
- - Fixed bad mod_perl interaction which caused segfaults when using LFS (Sascha)
- - const CONSTNAME now gets recognized. Before the patch only @const CONSTNAME
- description was recognized.
- - Added the is_null() function that will return true if a variable is of
- type null. (Sterling)
- - Fixed a bug which made readdir() unusable in some systems. (Jani)
- - Added the get_defined_functions() function which returns a list of all
- currently defined functions. (Sterling)
- - Added the get_defined_vars() function which returns an associative array
- of all variables defined in the current scope and their subsequent values.
- (Sterling)
- - Added the call_user_func_array() function which gives you the ability to
- call a user function by passing an array of parameters as the second
- argument. (Sterling)
- - Added the constant() function which returns the value of a constant given
- the constant's name. (Sterling)
- - Implemented support for Perl-style matching regexp delimiters in PCRE.
- You can use <{[( and )]}> to delimit your expressions now. (Andrei)
- - Introduced new 'F' modifier in PCRE that lets you specify a function
- name in the replacement argument to preg_replace() that will be called
- at run-time to provide the replacement string. It is passed an array of
- matched pattern and subpatterns. (Andrei)
- - Put an end to BUG#4615 (kalowsky & Eric Veldhuyzen)
- - Added the IRCG extension (Sascha)
- - Fixed realpath() in Virtual Directory mode (Daniel)
- - Integrated the Phil Nelson's bc math library routines into PHP, now that
- the license allows it (Phil Nelson <phil@cs.wwu.edu>)
- - Added the xslt_set_error_handler() function to the Sablotron extension.
- (Sterling)
- - Improved Sablotron's error handling system allowing you to catch all
- errors before they are outputted to the screen. (Sterling)
- - Added OpenSSL extension (Stig Venaas)
- - Fixed/created support for Solid 3.0 databases (kalowsky)
- - Fixed support for Solid 2.3 databases (kalowsky)
- - quoted_printable_decode() function is made RFC-2045 compliant. (Kir)
- - Modified preg_grep() to always return the results with keys from the original
- array. (Andrei)
- - Modified preg_replace() to accept Perl-style $n backreferences in addition
- to \\n ones. (Andrei)
- - Modified preg_replace() to ignore backreferences that refer to
- non-existing subpatterns. (Andrei)
- - Fixed column-title buffer-overflow in OCIFetchStatement(). (Thies)
- - Added 'output_handler' INI directive (Zeev)
- - Fixed some buglets in the output buffering mechanism (Zeev)
- - Added transparent gzip compression support (Jade Nicoletti, Zeev)
- - Major overhaul of domxml. Added basic XPath support as well (Uwe)
- - Added 'r' flag to date() which generates an RFC822 formatted date, e.g.
- "Thu, 9 Nov 2000 16:33:01 -0500" (Colin)
- - In CGI mode, $HTTP_SERVER_VARS now includes all of the environment variables
- as well (Zeev)
- - Allow user to use mysql_use_result in mysql queries (Stas)
- - Fixed a memory leak that would occur when restarting Apache often
- (mookid@sigent.ru)
- - Fixed a bug that prevented $argv and $argc from being defined in the command
- line version of PHP (Stas)
- - Fixed a bug that prevented a changed compile-time extension_dir from
- affecting modules that were loaded via php.ini (Zeev)
- - Fixed a bug in ftp_mkdir() when used on ftp server which doesn't return
- the full path (Jani)
- - Added ImageCreateFromString() which creates an image stream out of
- e.g. a MySQL blob. (Mathieu)
- - Fixed a crash bug in imagewbmp() (Jani)
- - Changed the sablot configuration file so that if you use any version of
- Sablotron below 0.44 you must use Sablotron's built-in Expat libraries.
- (Sterling)
- - Added basic authentication support to thttpd (Sascha)
- - Added support for the Caudium webserver (http://caudium.net/). It's based
- on the Roxen SAPI module. Many bugs have been identified and fixed. (David)
- - Fixed mysql_close(), pg_close(), msql_close() and sybase_close() - they
- weren't properly closing the SQL connections (Zeev)
- - Fixed crypt() to supply random seed if none is given (Andi)
- - Made print_r() support recursive data structures, e.g. $GLOBALS. (Zeev)
- - Fixed a bug that caused PHP not to properly flush its output buffer, if more
- than one output buffer was used. (Zeev)
- - Fixed a bug that could draw the shutdown sequence of the PHP Apache module
- into an endless loop, under certain circumstances. It could cause Apache
- processes under Solaris to get stuck, especially when using output
- buffering. (Zeev)
- - Added support for serializing references (Stas)
- - Fixed conflict with OpenLDAP and Oracle 8.1.x (Jani)
- - parse_ini_file() supports a new optional 2nd argument that instructs it
- to divide the directives to arrays according to the sections in which they
- reside (Zeev)
- - parse_ini_file() is now thread-safe, and supported under Windows (Zeev)
- - Unified aborted-connection semantics of all SAPI modules (Sascha)
- - URL-opened files now store the HTTP response header in $http_response_header
- (Zeev)
- - Fixed array_rand() to shuffle results when the number of requested
- elements is the same as the number of elements in the array. (Andrei)
- - Added replace parameter to header() (Sascha)
- - Fixed handling of single quotes in transparent session-id mode (Sascha)
- - Fixed "php://*" fopen handler (Sascha)
- - Made rename work in threadsafe enviroments (Daniel)
- - Made session_destroy() close files before unlinking (Daniel)
- - Added array_sum() function. (Andrei)
- - Fixed a bug in session.c. The php_session_save_current_state did not check
- if mod_data is NULL and such situation is possible if the user calls
- session_module_name with a parameter. (alex@zend.com)
- - Added IIS Admin extension. (Frank)
- - OCIBindByName() now does better parameter-checking. (Thies)
- - Made read() binary-safe in sockets.c (Chris Vandomelen)
- - Made array_intersect() and array_diff() not alter order (Stig Venaas)
- - Made ldap_connect() accept URL in host parameter when using OpenLDAP
- 2.x. To use SSL, use ldaps://host/ as URL. (Stig Venaas)
- - Made resource type names visible, e.g. var_dump() and
- get_resource_type() display "file" for file resources. (Andrei)
- - Added the curl_getinfo() function to find out information about a CURL
- transfer. This function requires cURL 7.4.0 or above. (Sterling)
- - Added the CURLOPT_KRB4, CURLOPT_INTERFACE, CURLOPT_QUOTE, CURLOPT_POSTQUOTE,
- CURLOPT_QUOTE and CURLOPT_HTTPPROXYTUNNELL options. (Sterling)
- - Renamed the shm_* functions to shmop_* (Derick)
- - Updated ext/mysql/libmysql to version 3.23 (tim@mysql.com)
- - Added ldap_get_option() and ldap_set_option() functions (Stig Venaas)
- - Fixed a crash in CGI mode, in case no file was provided
- (Daniel Beulshausen& Zeev)
- - Fixed possible crash bug in imap_fetchstructure() (Jani)
- - Fixed possible crash bug in imap_open() (Jani & Mark Musone)
- - Added url_rewriter.tags configuration directive (Sascha)
- - Added CORBA client extension, ready for use (eriksson@php.net)
- - Fixed memory leak in x-httpd-source mode (Jason Greene)
- - Changed ext/gd not to be enabled by default (Jani)
- - Make increment of empty string ("") behave like in PHP 3 and result in "1"
- (Andi, Zend Engine)
- - Added POST handler for Adobe FDF format (Hartmut)
- - Added transparent read and write .gz-files on glibc based systems
- using the 'zlib:' fopen wrapper (Hartmut)
- - Fixed a problem in the configuration parser (two null bytes were added
- to each ENCAPSULATED TC_STRING) (alex@zend.com)
- - Added HMAC support in the mhash module (nmav@altera.gr)
- - Added module for Ovrimos sql server (nmav@altera.gr)
-
- 11 Oct 2000, Version 4.0.3
- - Fixed a possible crash in -a interactive mode (Zeev, Zend Engine)
- - Added mysql_escape_string() (Peter A. Savitch and & Brian Wang)
- - Fixed many possible crash bugs with improper use of the printf() family of
- functions (Andi)
- - Fixed a problem that allowed users to override admin_value's and admin_flag's
- (Zeev)
- - Fixed PostgreSQL module to work when the link handle is omitted (Zeev)
- - Fixed returning of empty LOB fields in OCI8. (Thies)
- - Added Calendar module to default Win32 build (Andi)
- - Added FTP module to default Win32 build (Andi)
- - Fixed crash in the POSIX getrlimit() function (alex@zend.com)
- - Fixed dirname() under certain conditions (Andi)
- - Added --with-imap-ssl to support SSL'ized imap library in RH7 and others
- (Rasmus)
- - Fixed possible crash bug in parse_url() (Andi)
- - Added support for trans sid under Win32 (Daniel)
- - Added IPv6 support in fopen (Stig Venaas)
- - Added the shmop extension. It allows more general ways of shared memory
- access. (thanks to Ilia Alshanestky <iliaa@home.com> and Slava Poliakov
- <slavapl@mailandnews.com> (Derick)
- - Added the ability for CURLOPT_POSTFIELDS to accept an associative array of
- HTTP POST variables and values. (Sterling)
- - Added the CURLOPT_HTTPHEADER option to curl_setopt(). (Sterling)
- - Added the curl_error() and curl_errno() functions. (Sterling)
- - Changed ext/db not to be enabled by default (Jani)
- - Fixed building Apache SAPI module on SCO UnixWare (Sascha)
- - Fixed writing empty session sets to shared memory (tcarroll@chc-chimes.com)
- - Added support for BSD/OS make (Sascha)
- - Added improved URL rewriter (Sascha)
- - Fixed readdir_r() use on Solaris (Sascha)
- - Improved HTTP headers for private-caching (jon@csh.rit.edu, Sascha)
- - Added new function session_cache_limiter (jon@csh.rit.edu, Sascha)
- - Added ftp_exec to the ftp functions (thanks to <jhennebicq@i-d.net>)
- (Derick)
- - PEAR: add last executed query as debug info in DB errors (Stig)
- - PEAR: allow multiple modes in PEAR_Error (Stig)
- - Made the Sybase CT module thread safe (Zeev)
- - Added second argument to array_reverse() that indicatese whether
- the original array keys should be preserved. (Andrei)
- - Clean up htmlspecialchars/htmlentities inconsistencies. (Rasmus)
- - PEAR: renamed DB_GETMODE_* to DB_FETCHMODE_*, added setFetchMode()
- in DB_common to set the default mode, added some MySQL tests (Stig)
- - Made eval() and several other runtime-evaluated code portions report the
- nature and location of errors more accurately (Stas)
- - Added an optional parameter to wordwrap that cuts a string if the length of a
- word is longer than the maximum allowed. (Derick)
- - Added functions pg_put_line and pg_end_copy (Dirk Elmendorf)
- - Added second parameter for parse_str to save result (John Bafford)
- - Fixed bug with curl places extra data in the output. (medvitz@medvitz.net)
- - Added the pathinfo() function. (Sterling)
- - Updated sybase_ct module and its sybase_query to use high performance API.
- (Joey)
- - Added a more configurable error reporting interface to DB. (Stig)
- - Added is_uploaded_file() and move_uploaded_file() (Zeev)
- - Added several directives to php.ini - post_max_size, file_uploads,
- display_startup_errors - see php.ini-dist for further information (Zeev)
- - Worked around a bug in the libc5 implementation of readdir() (Stas)
- - Fixed some potential OpenBSD and NetBSD crash bugs when opening files. (Andi)
- - Added EscapeShellArg() function (Rasmus)
- - Added a php.ini option session.use_trans_sid to enable/disable trans-sid.
- (Sterling)
- - Added the Sablotron extension for XSL parsing. (Sterling)
- - Fixed a bug in checkdate() which caused < 1 years to be valid (Jani)
- - Added support for an optional output handler function for output
- buffering. This enables transparent rendering of XML through XSL,
- transparent compression, etc. (Zeev)
- - Added support for user defined 'tick' callback functions. This helps
- emulate background processing. (Andrei)
- - Fixed problem with having $this as the XML parser object. (Andrei)
- - Internal opened_path variable now uses the Zend memory manager so that full
- paths of files won't leak on unclean shutdown (Andi)
- - Removed support of print $obj automatically calling the __string_value()
- method. Instead define yourself a method such as toString() and use
- print $obj->toString() (Andi, Zend Engine)
-
- 29 Aug 2000, Version 4.0.2
- - Added PHP API for Zend's ticks. (Stig)
- - PHP 3 regression testing framework re-born (Stig)
- - Added php_uname() function (Stig)
- - Made a minor change to allow building with OpenLDAP 2.0 (Stig Venaas)
- - Fixed a bug in preg_replace() that would truncate subject string if the
- first argument was en empty array. (Andrei)
- - Added ob_get_length function (Stig)
- - Fixed a bug that did not respect limit parameter in preg_replace() when
- using /e modifier. (Andrei)
- - Added ability for each xml_set_*_handler() function to take the
- array($obj, 'method') syntax for the handler argument as well
- as the normal function name. (Andrei)
- - Updated array_walk() to be able to accept array($obj, 'method')
- syntax for the walk function. (Andrei)
- - Fixed segfault with fgets(), fgetcsv(), fgetss(), and fread() when
- called with negative length argument. (Torben)
- - Fixed by-reference parameters passing for xml_ functions and for scanf
- functions (Stas)
- - Added experimental Oracle LDAP SDK support. 8.1.6 or later needed. Configure
- with something like --with-ldap=/usr/local/oracle/product/8.1.6 (Stig Venaas)
- - Fixed memory leaks in eval(); A script that used eval() extensively, could
- end up consuming very large amounts of memory during execution (Zeev, Zend
- Engine)
- - Fixed memory_limit feature, which did not work properly in previous versions
- (Zeev, Zend Engine)
- - Fixed stdout support with the swf extension. (Sterling)
- - Fixed byte order for ip2long and long2ip (Stas)
- - Fixed dbase_add_record. (Sterling)
- - Added support for libmcrypt 2.4.4 (Derick)
- - Added strncasecmp function (Andi, Zend Engine)
- - Fixed FTP module to accept multiline server replies (Jani)
- - Fixed switch which only has a single default rule. (Andi, Zend Engine)
- - Fixed problem with nested foreach()'s. (Andi, Zend Engine)
- - The CCVS module is now stable and compiling. It compiles as a CGI and into
- Apache cleanly without warnings. (Brendan W. McAdams)
- - Fixed mSQL_close(). (nick@loman.net)
- - Made return() in a require()'d file work like return() in an include()'d
- file (Andi & Zeev, Zend Engine)
- - Changed require_once() to work using the same table as include_once()
- (Andi & Zeev, Zend Engine)
- - Fixed PostgreSQL module to work when the link handle is omitted (Zeev)
- - Fixed the Sybase modules to work properly with PHP 4.0 (Zeev)
- - Fixed CLOB handling in OCI8 driver when using variable-width
- character sets. (Thies)
- - Added 4th optional parameter to sybase_[p]connect to specify the charset
- for the connection (alf@alpha.ulatina.ac.cr)
- - Fixed support for current thttpd releases. (Sascha)
- - Added support for kerberized IMAP library using --with-kerberos
- (Rasmus, Sascha)
- - Virtualize realpath, chmod, chown and utime (Stas)
- - Support content-encoding headers in file upload MIME parts
- (Ragnar Kj°rstad)
- - Fixed warning when shutting down OCINLogon() connections. (Thies)
- - Fixed \n in session variables bug on Win32 (Stas)
- - OCIError() would sometimes not report failed connections. (Thies)
- - Fixed HEAD request bug on an Apache ErrorDocument redirect and preserve
- the status code across the redirect as well. (Rasmus)
- - Added Olympus-specific tags to read_exif_data() (Rasmus)
- - Fixed bug in imap_fetchheader() where using FT_PREFETCHTEXT didn't return
- the body. Bug #4447. (Jani)
- - Fixed exec() returning "\0" when output is empty
- - Added XML_Parser class in PEAR (Stig)
- - Added "make test" target in pear/ and added some regression tests (Stig)
- - Fixed bug in strip_tags function as per bug #5857 (Rasmus)
- - Fixed reading of IPTC via GetImageInfo() for certain JPEG files. (Thies)
- - Improved the output-buffering functions to be re-entrant (Zeev)
- - Made ldap_add(), ldap_modify(), ldap_mod_add(), ldap_mod_replace()
- binary-safe. Original patch: Terrence Miao <terrence_miao@email.com> (Jani)
- - CGI aka. command line version has now an option '-l' for syntax check
- without execution (Hartmut)
- - Fixed bug in ldap_get_values_len() which makes it NULL-safe. (Jani)
- - Bug-report and fix submitted by Michel Alexeline <alexel@dr15.cnrs.fr>
- - Make ext_skel create a Makefile.in set up to handle shared extension
- support automatically (Rasmus)
- - Fixed php_realpath not to die on non-existing files (needed for touch())
- (Stas and china@thewrittenword.com)
- - Fixed get_browser() function (Stas)
- - Fixed symbol clash which caused a DSO problem on OpenBSD (Rob Black and
- anil@recoil.org)
- - Added new function: ldap_compare(). (Jani)
- - Fixed a bug in ldap_get_entries() and ldap_get_attributes(). (Jani)
- - Ported DB to new error reporting scheme in PEAR. (Stig)
- - Added sybase and ibase DB backends in PEAR. (Sterling)
- - New PEAR package Payment_Verisign for use with the Payflow Pro
- (pfpro) extension. (David Croft)
- - Added CURL support. (Sterling)
- - Catch users trying to set "compatibility" parameter in PDF, which is not
- supported from user-land. (Joey)
- - Fixed dbase_add_record. (Sterling)
- - Added new function wordwrap() to wordwrap long strings from Chris
- Russel <russel@yorku.ca> (David Croft)
- - Added four additional arguments: attrsonly, sizelimit, timelimit, deref which
- were missing in ldap_search(), ldap_list() and ldap_read() functions (Jani)
- - Fixed a bug in ldap_search/list/read() which prevented returning the partial
- results when 'Sizelimit exceeded' error occurred. (Jani Taskinen)
- - Fixed preg_replace() to automatically escape quotes in matched
- strings when using /e modifier. (Andrei)
- - Itanium patch (Steve Robb)
- - Set default include_path so PEAR files can be reached (Stig)
- - Added "pear" executable, requires CGI version installed (Stig)
- - Added extension ii for Ingres II native support. See README in ext/ingres_ii
- directory. (David H)
- - Added Win32 project for the Interbase module (Zeev)
- - Added ability to perform calls to the parent class without explicitly
- specifying its name, using parent::func_name(...) (Zeev, Zend Engine)
- - You can now call Ora_Error() without prameters to get the reason
- for a failed connection attempt. (Kirill Maximov)
- - New extension "pfpro" for interface with Verisign Payflow Pro (David Croft)
- - Added IMG_GIF, IMG_JPG, IMG_JPEG, IMG_PNG and IMG_WBMP constants for
- imagetypes() function (Rasmus)
- - Added ImageTypes() function which returns a bitfield with the supported
- image formats. 1=gif, 2=jpeg, 4=png and 8=wbmp (Rasmus)
- - Make it possible to specify an empty string as a thousands-seperator
- in number_format() (Rasmus)
- - Shared module support for LDAP extension (Troels Arvin)
- - Fixed a bug with imap_mail where apache would segfault if the rpath
- parameter was specified.
- - Use dashes and short day name in cookies since some browsers seem picky
- about this (Rasmus)
- - Added pspell module. (Vlad)
- - Added 3 additional arguments to the user-defined error handler - the file
- name and line number in which the error occured, and the context (local
- variables) of the code in which the error occured (Zeev, Zend Engine)
- - Improved the error handling code to handle an error in a user-defined error
- handling function (Zeev, Zend Engine)
- - Fixed leak when using string offsets in the array() construct.
- (Andi, Zend Engine)
- - Fixed corruption problem when changing deeply nested values in objects.
- (Andi & Zeev, Zend Engine)
- - Improved array_multisort() to be able to specify sort type as well sort
- order. Incidentally, it can be used to sort multi-dimensional arrays
- as well. (Andrei)
- - Fixed a possible data corruption in case of a huge amount of aborted requests
- (Zeev)
- - Apache module would sometimes close a wrong file-descriptor. (Sascha)
- - Fixed use of alternative storage handlers in the session module. (Sascha)
- - Updated str_pad() to be able to pad on left/right/both sides. (Andrei)
- - Fixed crash in gzopen(). (Thies)
- - Multiple character set support in gdttf.c (Rob Goodwin)
- - When using HTTP auth from PHP, fill in the %u custom log field so the
- authenticated used id will get logged in the Apache access_log (Rasmus)
- - Support for pdflib 3.01. (Uwe)
- - FDF Data is handled properly and can be accessed by reading
- HTTP_RAW_POST_DATA. (Uwe)
- - Added new 'O' format modifier that will output the GMT offset as "[+-]HHMM"
- (eg: Pacific time is -0700). This is useful for things such as Date: mail
- headers. (Mike W)
- - Fixed crash on OCI?Logon() failure. (Thies)
- - Make the special Header("http/...") response be case insensitive like 3.0
- (Rasmus)
- - Allow cybercash to compile as a DL module. (Sterling)
- - Fixed the dbase_create function. (Sterling)
- - Fixed a problem under some versions of Windows that could cause PHP to hang
- on startup if errors occured, e.g. in the php.ini file (Zeev)
- - Fixed opendir() again. It should actually work well continuously now (Zeev)
- - Added three additional arguments to be sent to a user-defined error handler -
- the filename and line number in which the error occured, and the context
- (the local variables) of the error (Zeev, Zend Engine)
- - Improved the error handling code to handle an error in a user-defined error
- handling function (Zeev, Zend Engine)
- - Added an optional parameter to preg_replace() that can be used to
- specify how many replacements to make. (Andrei)
-
- 28 Jun 2000, Version 4.0.1
- - Fixed a possible crash in the LDAP modify code. (Eric Kilfoil)
- - Fixed a bug in opendir(), which prevented readdir() from working properly if
- the $dir argument wasn't explicitly specified (Zeev)
- - Made --enable-discard-path work again. (Andi)
- - Removed 8KB limit on line length of the file() function (Zeev)
- - Disabled dl() when PHP is being used as a module inside a multithreaded web
- server - it didn't work before, and caused weird results (Zeev)
- - Added the ImageColorClosestHWB(), ImageCopyMerge() and ImagePaletteCopy()
- functions. (Sterling)
- - Added ImageCreateFromWBMP() function. (Jouni)
- - Fixed problems with POST requests under the NSAPI module. (Roberto Biancardi)
- - Added spliti() function. (Thies)
- - Fixed serializer behaviour with regards to serializing objects whose class
- definition was not available in the deserializing context. (Sascha)
- - Improve memory cache performance and increase cache size. (Stas, Zend Engine)
- - Added a crc32 checksum function - used by the UdmSearch search engine
- and currently run through a system call. This will speed up the UdmSearch
- php frontend significantly. (Rasmus)
- - Modified in_array() to not touch array pointer. (Andrei)
- - Added restore_error_handler(). (Zeev, Zend Engine)
- - Fixed erroneous file names and line numbers in error situations under the
- multithreaded version of PHP - most noticeably Win32 (Zeev, Zend Engine)
- - Fixed problem with CGI crashing on certain servers especially Windows Apache
- & O'Reilly website (Andi)
- - Added Pi3Web SAPI module; run ./configure --with-pi3web to enable this.
- (Holger; zimpel@t-online.de)
- - Enhanced WDDX functions to call __sleep() and __wakeup() when working on
- objects. (Andrei)
- - Changed WDDX to serialize arrays as structs only if needed. (Thies)
- - Implemented max_execution_time under Win32 (Zeev)
- - Updated strtotime() to handle many more formats. It now has complete
- feature parity with GNU date command. (Andrei)
- - Added support for multiple arguments in unset(). (Faisal, Zend Engine)
- - Functions that expect a resource but are passed something else now return
- NULL instead of FALSE. (Thies, Zend Engine)
- - Fixed gmmktime(), on certain systems it incorrectly adjusted for the timezone
- offset and daylight savings time. (Andrei)
- - Moved VC++ Win32 project and workspace files to the win32 directory
- (Zeev)
- - Fixed checkdate() to not return true on non-numeric arguments (Rasmus)
- - Added --enable-c9x-inline option for compilers which support the new C9x
- standard. If you encounter undefined references to i_zend_is_true and
- other symbols, you should enable this. (Sascha, Zend Library)
- - Fixed a problem in ldap_add() and ldap_modify(), sometimes added trailing
- garbage to the values (Stig Venaas)
- - Fixed a problem with dbmopen() not handing 'c' correctly with dbm/db/ndbm
- databases. (JimJag)
- - Fixed a crash in number_format() when used with locales. (Andrei)
- - Fixed an initialization problem in the MS-SQL problem that could cause
- a crash in mssql_query() (Zeev)
- - Upgraded PCRE to version 3.2 and fixed a bug when anchored pattern
- matched an empty string. (Andrei)
- - Fixed a bug that prevented PHP from paying attention to the extension_dir
- directive with extensions that were loaded from the php.ini file (Zeev)
- - Changed set_error_handler() to return the name of the previously defined
- error handler, if any (Zeev, Zend Engine)
- - Declared <?php_track_vars?> officially dead. It didn't work in PHP 4.0.0
- either, but now it's gone for good (Zeev)
- - Make convert_cyr_string() binary safe and stop it from corrupting other
- PHP variables. (Andi)
- - Added functions array_unique, array_intersect and array_diff (Stig Venaas)
- - Fixed problem when using uninitialized values in comparisons with strings.
- They behave as empty strings again just like in PHP 3.
- (Andi & Zeev, Zend Engine)
- - Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei)
- - Fixed var_dump() not to modify the internal order of array elements (Zeev)
- - Fixed stripcslashes() to remove to strip \ in unknown escapes instead of
- leaving it. (Andrei)
- - Changed WDDX to always serialize arrays as structs. (Andrei)
- - Fixed include_once() to issue a warning in case the supplied file name is
- not found (Zeev, Zend Engine)
- - Fixed a bug in get_declared_classes() which could return the same class
- multiple times under certain circumstances (Zeev, Zend Engine)
- - Fixed a bug in rawurldecode() that would cause in rawurldecode() corrupting
- its argument (Zeev)
- - Parse errors (or other errors) in the php.ini files under Windows will no
- longer mess up the HTTP headers in CGI mode and are now displayed in a
- message box (Zeev)
- - Fixed a crash in OCIFetchStatement() when trying to read after all data
- has already been read. (Thies)
- - fopen_wrappers() are now extensible via modules (Hartmut Holzgraefe)
- - Make trim strip \0 to match php 3 (Rasmus)
- - Added function imagecreatefromxbm(). (Jouni)
- - Added function imagewbmp(). (Jouni, based on patch from Rune Nordb°e
- Skillingstad)
- - Added str_pad() for padding a string with an arbitrary string on left or
- right. (Andrei)
- - Made the short_tags, asp_tags and allow_call_time_pass_reference INI
- directives work on a per-directory basis as well, e.g. from .htaccess
- files. (Zeev)
- - Added fflush() function. (Eric Huss)
- - Fixed a problem with static variables, default function arguments and class
- member variables, that contained array values. (Andi & Zeev, Zend Engine)
- - Fixed virtual() when used with output buffering (Marc Pohl)
- - Clean up constants in flock() function and add optional 3rd arg which
- is set to true on EWOULDBLOCK (Rasmus)
- - Added functions pg_loimport(), pg_loexport(). (Jouni)
- - Added SWF support to getimagesize() function (Derick Rethans)
- - Added support for both indexed and non-indexed arrays of file uploads
- eg. name="file[]" type="file" (Rasmus)
- - Added create_function(), which gives the ability to create functions
- on-the-fly (Zeev, Zend Engine)
- - Added support for comparisons of arrays (with arrays) and objects (with
- objects); The equality operator (==) performs an unordered comparison,
- whereas the identity operator (===) performs an ordered comparison (Zeev,
- Zend Engine)
- - Allow all functions that receive user-defined function callbacks to accept
- an array that contains an object and a method name, in place of a function
- name, e.g. usort($array, array($obj, "ObjSort")) (Zeev, Zend Engine)
- - Added set_error_handler() to allow custom error handling functions,
- instead of the built-in error handling code (Zeev, Zend Engine)
- - Renamed user_error() to trigger_error(); user_error() remains
- defined for compatibility (Zeev, Zend Engine)
- - Fixed the global/static statements to require a trailing terminating
- semi-colon ';'. (Andi, Zend Engine)
- - Cleaned up PCRE extension and made it binary-safe. (Andrei)
- - Added third argument to in_array(). If it's true, then in_array()
- will use strict comparison instead of the default one. (Andrei)
- - Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev)
- - ignore_user_abort=Off is now default. (Thies)
- - Added array_merge_recursive() that will recursively merge values
- under the same keys. (Andrei)
- - fixed crash in OCIParse when parsing invalid SQL. (Thies)
- - Fixed a bug in mysql_connect() that made it ignore the socket argument, in
- case of non-persistent connects (Zeev)
- - Added disable_functions php.ini directive, to allow administrators to disable
- certain functions for security reasons (Zeev)
- - Fixed sessions on Win32. When setting the directory depth parameter in
- save_path you need to now delimit it with a ';' instead of ':', e.g
- "5;/tmp" instead of "5:/tmp" (Andi)
- - Changed the Apache handler's return status to 'Declined' when a requested
- PHP file could not be found. Returning 'Not Found' caused problems
- in the ErrorDocument handler stage in that $REDIRECT_REDIRECT_ERROR_NOTES
- was not getting set at all. Moving to 'Declined' should fix this and I
- can't see any other side effects. (Rasmus)
- - Fixed scanning decimal numbers in internationalized environments. They should
- always be in standard US format e.g. 23.3. (Andi, Zend Engine)
- - Added second argument to preg_quote() which allows quoting of
- one additional character, usually the regex delimiter. (Andrei)
- - Uncommitted outstanding OCI8 transactions are now rolled back
- before the connection is closed. (Thies)
- - ignore_user_abort() & friends should now work in CGI mode as well.
- (Patch by daniel.braun@ercom.fr)
- - Added extension YAZ (dickmeiss).
- - Fixed a crash bug triggered by certain cases of class redeclarations
- (Stas & Zeev, Zend Engine)
- - Fixed min()/max() segfault. (Andrei)
- - New module for reading EXIF header data from JPEG files. Most digital
- cameras will embed all sorts of information about a picture inside the
- jpeg images it generates. (Rasmus)
- - Fixed basename() bug where "file.ext///" would not return the same
- as "/path/file.ext///" (Rasmus)
- - Added the swf_ortho function. (Sterling)
- - Moved to virtual current working directory support. This highly improves the
- functionality and stability of multi-threaded versions of PHP (Andi, Sascha)
-
- 22 May 2000, Version 4.0.0 Release
- - Allow the writing of flash files to stdout.
- - Fixed a crash bug in .phps syntax-highlighted files (Andi)
- - Improved round() to allow specification of rounding precision.
- (Andrei, Todd Kirby <kirbyt@yahoo.com>)
- - Added SORT_REGULAR, SORT_NUMERIC, SORT_STRING flags that can be used with
- non-user sort functions for precise sorting behavior. (Andrei)
- - Fixed two 64-bit issues (startup crash, gethostbyaddr). (Sascha)
- - NULL values are now preserved in the return value of mysql_fetch_array()
- and mysql_fetch_object(). (Andrei)
- - Ported InterBase module finally from PHP 3 to PHP 4. Full support for
- InterBase 6. (Jouni)
- - Added swf_definepoly for drawing polygons to the SWF functions. (Sterling)
- - Ported imagegammacorrect from PHP3 to PHP4. (Sterling)
- - Added array_rand() function. (Andrei)
-
- 8 May 2000, Version 4.0 Release Candidate 2
- - NSAPI WIN32 Module compilable, untested (Shane)
- - Apache WIN32 Module compilable and lightly tested. (Shane)
- - Enabled assert() by default in php.ini-dist. (Andrei)
- - Put in safeguards in case dynamic code evaluation in assert() and
- preg_replace() with /e modifier fails. (Andrei)
- - Fixed infinite recursion when serializing $GLOBALS[] in WDDX. (Andrei)
- - Made WDDX serialization properly escape <, >, and &. Also speeded up
- the serialization in general. (Andrei)
- - Moved install-local to install-sapi for clarity. (Joey)
- - Improved extension build framework. Refer to README.SELF-CONTAINED-EXTENSIONS
- for an introduction. (Sascha)
- - ImagePolygon() is no longer limited by a maximum number of polygons.
- (Marc Pohl)
- - Added configure time checking for bcmath package. (Joey, Sascha)
- - Added get_declared_classes(). (Andrei, Zend Engine)
- - Added initial NSAPI module from Jayakumar Muthukumarasamy. (Rasmus)
- - Added the SWF module which allows you to create Macromedia Flash files via
- libswf. (Sterling)
- - Improved UNIX build system to support more vendor make tools (Sascha)
- - Updated natural comparison/sorting algorithm by Martin Pool
- <mbp@humbug.org.au>. (Andrei)
- - Fixed a crash in array_multisort() that happened when empty arrays
- were passed to it. (Andrei)
- - Added substr_count() from Peter Kovacs. (Andrei)
- - Added an optional third argument to fseek to indicate where to seek from.
- (Andrei)
- - OCIBindByName() will no longer complain about bindlength beeing zero. (Thies)
- - Converted the IMAP module to the high performance API (Zeev)
- - The fgetcsv() function now handles embedded end-of-line in a quoted field
- (Nick Talbott)
- - Added user_error(), to allow explicitly generate error messages from scripts
- (Zeev, Zend Engine)
- - Fixed a problem in long2ip() that occasionally returned incorrect IP address.
- (Evan, Andrei)
- - Fixed many memory leaks in the IMAP module (Stas, Andi, Zeev)
- - Fixed bug in number_format (Jon Forsberg)
- - Make error_prepend_string and error_append_string work (Rasmus)
- - array_walk() now automatically resets the array. (Andrei)
- - Added natural comparison/sorting routines strnatcmp(), strnatcasecmp(),
- natsort(), and natcasesort(). These are useful for comparing and sorting
- strings that contain numbers. Based on the code from Martin Pool
- <mbp@humbug.org.au>. See http://www.linuxcare.com.au/projects/natsort/
- for more info on natural sorting. (Andrei)
- - Zeus Webserver support (version 3.3.6+) for ISAPI (Ben Mansell)
- - Fixed several problems with the PATH_TRANSLATED and PHP_SELF under Apache
- (Paul Gregg & Zeev)
- - Ported ldap_get_values_len() function from PHP3 to PHP4. (Sterling)
- - Fixed a problem in include_once() with non constant arguments (Andi & Zeev,
- Zend Engine)
- - Added php.ini-optimized (Zeev)
- - Ported ldap_errno(), ldap_err2str() and ldap_error() from PHP3 to PHP4.
- (Sterling)
- - WDDX now defaults to ISO-8859-1. (Thies)
- - Fixed crash resulting from IMAP's error handling (Stas)
- - Added $HTTP_POST_FILES[filename][tmp_name] - it was previously impossible to
- retrieve the temporary name of an uploaded file using $HTTP_POST_FILES[]
- (Zeev)
- - Made the IMAP and LDAP modules compilable under Windows and thread-safe
- (Zeev)
- - Fixed a problem when dealing with large POST blocks in CGI mode (Zeev)
- - Added session_get_cookie_params() function. (Sterling)
- - Fixed return of stristr() to no longer always be lowercased. (Andrei)
- - Changed the Windows version of PHP so that a php.ini file is no
- longer mandatory (Zeev)
- - session_start() is now more verbose if headers cannot be send. (Thies)
- - Fixed a memory leak when using assign-op bitwise operators on strings (Zeev,
- Zend Engine)
- - Added support for reading properties that require arguments in the COM
- module - writing to them will only be supported in PHP 4.1 (Zeev)
- - Fixed a very old legacy memory leak in the COM module (Zeev)
- - Fixed problems with object-overloading support - noteably, COM and Java
- (Zeev, Zend Engine)
- - Fixed an overrun in WDDX. (Thies)
- - Fixed a crash bug with modules loaded through dl() not properly freeing their
- resources (Zeev, Zend Engine)
- - Added localtime() function. (Sterling)
- - Added the 'I' format option for the date function, this option will return
- true or false depending on whether or not daylight savings time is in effect.
- (Sterling)
- - Added gmstrftime() function. (Sterling)
- - snmp_walkoid is now an alias for snmp_realwalk. (Sterling)
- - Fixed a bug that could cause a crash when using 'global' inside large include
- files (Stas, Zend Engine)
- - Added --enable-libgcc switch to force linking against libgcc (Sascha)
- - Fixed dynamic loading where extension_dir had no trailing slash (Sascha)
- - Fixed dynamic loading on OpenBSD (Sascha)
- - Improved POSIX threads check. ZTS works now on at least Linux, Solaris,
- FreeBSD and OpenBSD (Sascha, TSRM)
- - Added !== operator support. (Torben, Zend Engine)
-
- 27 March 2000, Version 4.0 Release Candidate 1
- - Added support for UCD-SNMP 4.1.x (Sascha)
- - Fixed a data corruption bug in mysql_result(), if used in table.fieldname
- mode (Zeev)
- - Fixed a crash problem in func_num_args(), func_get_arg() and func_get_args()
- when used as function arguments (Andi, Zend Engine)
- - Added get_class_methods(string classname) function. (Andrei)
- - Added 'I' switch to test whether or not DST is active. (Sterling)
- - Fixed a data corruption bug in mysql_result(), if used in table.fieldname
- mode (Zeev)
- - Modified the registry INI entry reader (Win32) to work with drive letters.
- For example, if you wish to wish to specify INI entries for C:\foo\bar, you
- should create HKLM\PHP\Per Directory Values\C\foo\bar in the registry, and add
- string values for each directive you want to override in this directory (Zeev)
- - Fixed extract() for EXTR_PREFIX_SAME and EXTR_SKIP cases. (Andrei)
- - stristr() no longer modifies it's arguments. (Thies)
- - Don't default to iso-8859-1 since this confuses some browsers. (Rasmus)
- - Make it possible to specify both a port and a socket
- in mysql_[p]connect. (Rasmus)
- - Added --disable-pic for disabling generating PIC for shared objects
- on platforms which support it (i.e. Linux) (Sascha)
- - serialize()/unserialize() now call __sleep() and __wakeup() when
- working on objects. (Thies)
- - renamed to_string() method to __string_value() for consistency.
- (Thies, Zend Engine)
- - Fixed a bug in the third argument to define()
- - Added is_numeric() that returns true if the argument is a number
- or a numeric string. (Andrei)
- - domxml now supports libxml 2.0 Beta and drops support for older versions,
- due to massive changes in libxml
- - fixed possible crash in unserialize() if serialized data was
- corrupted. (Thies)
- - Changed $HTTP_STATE_VARS to $HTTP_SESSION_VARS. Use only the latter
- version now! (Andrei)
- - Added GD-JPEG Support (Rasmus)
- - Prevent from loading dynamic PHP modules which were compiled with different
- debug and thread safety modes than PHP, which resulted in a crash (Andi)
- - connection_aborted() and friends work again (Thies)
- - Upgraded to libtool 1.3.4 (Sascha)
- - UNIX configure creates config.nice in the build directory now which allows
- easy reuse of configuration options (Sascha)
- - Added support for embedded MySQL client library. Unless you specify a path
- to --with-mysql, the bundled MySQL client library will be used (Sascha)
- - Added include_once() and require_once() functionality (Andi, Zend Engine)
- - Removed support for pdflib < 3.0 (Uwe)
- - Added auto-registration of everything in $HTTP_SESSION_VARS[] if
- register_globals is turned off. (Andrei)
- - Cleaned up extension namespace (Stig)
- - OCINLogon() sessions are now closed again. (Thies)
- - Added ip2long() and long2ip(),
- courtesy of Faisal Nasim <faisal@nasim.org> (Andrei)
- - Added ftruncate() and fstat(),
- courtesy of Faisal Nasim <faisal@nasim.org> (Andrei)
- - Added parse_ini_file(). Currently implemented in non thread safe version
- of PHP, and currently lacks section support (Zeev)
- - "none" is now equivalent with "" in Apache config directives (Stig)
- - OCINLogon no longer crashes. (Thies)
- - Fixed comparisons of (string) "nan" with (string) "nan". (Thies, Zend Engine)
- - Switched back to the old $HTTP_*_VARS[] behavior - $HTTP_GET_VARS["foo"]
- and $foo are no longer references to each other, but separate variables
- like they were prior to PHP 4.0 Beta 4 (Zeev)
- - Fixed Sybase-DB compilation (Zeev)
- - Fixed a (fairly common) situation where error_reporting values would not be
- properly restored after a call to error_reporting(), in between requests
- (Zeev)
- - The various $HTTP_*_VARS[] are now protected, and cannot be manipulated by
- user input (Zeev)
- - Added ini_set() as an alias to ini_alter() (Zeev)
- - The string None is now recognized as a keyword by the php.ini processor, and
- can be used to denote an empty string (Zeev)
- - Added get_class_vars(string class_name) and get_object_vars(object obj)
- functions. (Andrei, Zend Engine)
- - Added pdf_set_parameter(), pdf_skew(), pdf_show_boxed() (Uwe)
- - Fixed comparison of (string) "inf" with (string) "inf", which was erroneously
- returning false (Zeev)
- - Implemented default_charset and default_mimetype config directives (Stig)
- - Ported T1lib support from PHP3. (Jouni)
- - Fixed -DEAPI inheritance from APXS. (Sascha)
- - Fixed possible crash in module-shutdown. (Thies)
- - Fixed safe_mode_protected_env_vars INI directive (Zeev)
- - Fixed getrusage() (Sascha)
- - Fixed OCI8 crash when returning cursors from stored-procedures. (Thies)
-
- 21 February 2000 Version 4.0 Beta 4 patch level 1
- - Fixed crash when magic_quotes were switched off. (Thies)
- - Support for pdflib 2.30 (Uwe)
-
- 20 February 2000, Version 4.0 Beta 4
- - Introduced $HTTP_POST_FILES[], that contains information about files uploaded
- through HTTP upload (Zeev)
- - Made PHP work under Microsoft Personal Web Server, under both Windows NT
- workstation and Windows 95 (Zeev)
- - Made multipart/form-data content obey to the variables_order directive (Zeev)
- - Updated the browscap module to work with PHP 4.0 (Zeev)
- - Recover gracefully in ISAPI after the client prematurely presses STOP (Andi)
- - Fixed bug in unset() on array offsets which are referenced more than once
- (Andi, Zend Engine)
- - Improved ISAPI module - it should no longer be necessary to set PHP as
- an ISAPI filter, only as an ISAPI extension, unless you wish to perform
- authentication using PHP. This didn't yet get enough testing, but it
- should work (Zeev)
- - Fixed RFC1867 file upload under Windows (Zeev)
- - Initital support for pdflib 2.20 (Uwe)
- - Added PostgreSQL support for DB (Rui Hirokawa <louis@cityfujisawa.ne.jp>)
- - Re-introduced "none" for disabling auto_prepend/append_file (Stig)
- - Added DB/storage (Stig, PEAR)
- - Introduced DB warnings (Stig, PEAR)
- - Fixed overrun in strip_tags (Stas)
- - Fixed crash in strip_tags() and related functions. (Thies)
- - Workaround for bogus POST-Data from IE/Mac. (Thies)
- Patch by Alain Malek <alain@virtua.ch>
- - Finished the server abstraction layer; All of the PHP code is now shared
- across different servers (Apache, CGI, IIS, etc.), except for thin
- interface modules (Zeev)
- - Added NULL-support in gettype(). (Thies)
- - base64_decode() will decode POST data correct. (Thies)
- Patch submitted by: Turadg Aleahmad <turadg@wise.berkeley.edu>
- - Much more work on domxml. Build xml tree, create xml doc works (Uwe)
- - Made foreach() work on objects. (Thies, Zend Engine)
- - Added domxml extension based on libxml, still little functionality (Uwe)
- - Fixed memory corruption in fgetss(), strip_tags() and gzgetss() (Zeev)
- - Updated calendar dynamic library to work with PHP 4. (Evan)
- - Added strncmp() function, courtesy of Walter. (Andrei)
- - Made the output of var_dump() more informative. (Thies)
- - Fixed some OCIBindByName() problems. (Thies)
- - Protect the ISAPI module against exceptions. Stack overflows in scripts are
- now nicely detected and handled (Zeev)
- - Fixed possible buffer-overflow in base64_decode. (Thies)
- - Fixed possible buffer-overflow in setcookie(). (Thies)
- - Fixed signal() bug that could cause the Apache master process to
- die. (Thies)
- - Added session_set_cookie_params() function. (Andrei)
- - If header information is sent after output has already been sent, the warning
- message will now state the filename and line number at which the first output
- was made (Zeev)
- - Added the XML Expat library to the standard PHP source distribution thanks
- to its author James Clark (Andi & Zeev)
- - Added XML support to the default Win32 build (Andi & Zeev)
- - Added socket_get_status() function. Renamed:
- set_socket_timeout() -> socket_set_timeout()
- set_socket_blocking() -> socket_set_blocking(). (Andrei)
- - Added realpath() function. (Andrei)
- - mktime interprets years in the range 0-70 now as 2000-2070. You can
- continue to specify the complete year (i.e. 1920) (Sascha)
- - Added the ability to control the environment variables the user is allowed
- to change in Safe Mode, using INI directives (Zeev)
- - Fixed a crash bug in strtr() working on large input strings (Zeev)
- - Ora_GetColumn()/Ora_FetchInto() now return NULL for NULL-Columns. (Thies)
- - OCI8 now supports binding of NULL-values. Module cleanups. (Thies)
- - Added ability to set timeout on socket read operations through
- set_socket_timeout() function. (Andrei)
- - Added implicit_flush INI directive (Zeev)
- - Added implicit_flush() to control whether flush() should be called
- implicitly after any output (Zeev)
- - Fixed a crash in pfsockopen() (Zeev)
- - Fixed a possible crash in phpinfo() (Zeev)
- - Added register_argc_argv INI directive, to allow to selectively disable
- the declaration of the $argv and $argc variables for increased
- performance (Zeev)
- - Added $HTTP_ENV_VARS[] and $HTTP_SERVER_VARS[] support, which similarly
- to $HTTP_GET_VARS[], contain environment and server variables. Setting
- register_globals to Off will now also prevent registration of the
- environment and server variables into the global scope (Zeev)
- - Renamed gpc_globals INI directive to register_globals (Zeev)
- - Introduced variables_order that deprecates gpc_order, and allows control
- over the server and environment variables, in addition to GET/POST/Cookies
- (Zeev)
- - new function cpdf_set_document_limits() (Uwe)
- - Applied safe-mode patch to popen(). (Patch by Kristian K÷hntopp)
- - str_repeat() now returns correct length. (Thies)
- - Don't assume libz and libpng are installed for the GD checks (Rasmus)
- - Implemented support for <boolean> and <null> types according
- to WDDX version 1.0 (Andrei)
- - Made var_dump()/serialize()/unserialize() NULL aware. (Thies)
- - Added new NULL constant (Zeev, Zend Engine)
- - Fixed -c support in the standalone CGI binary (Zeev)
- - Increased PHP's performance by 5-15% using a new memory cache (Andi & Zeev,
- Zend Engine)
- - Improved the php.ini reader to support constants and bitwise operators (Zeev)
- - Fixed strrev() to no longer modify arg1. (Thies)
- - Fixed buffer overruns in iptcembed(). (Thies)
- - Fixed a bug in ODBC error reporting (Zeev)
- - Added PHP_Logo_GUID() and Zend_Logo_GUID() functions, that return the GUIDs
- of the PHP and Zend logos used in phpinfo() (Zeev)
- - Added GNU Pth support (Sascha, TSRM library)
- - Removed select(), fd_set() and fd_isset() - will be reimplemented soon! (Thies)
- - Improved Win32 performance significantly by using different mutexes (Zeev,
- TSRM library)
- - Made quotemeta() and preg_quote() binary-safe. (Andrei)
- - Added UDP support in fsockopen(). (Evan)
- - Added --disable-pear option (Andrei)
- - Renamed libzend repository to Zend (Zeev)
- - Added support for thttpd (Sascha)
- - Added session.cache_limiter and cache_expire options (Sascha)
- - Restored the PHP_VERSION and PHP_OS constants (Zeev)
- - Added get_loaded_extensions(), extension_loaded(), and
- get_extension_funcs() functions. (Andrei)
- - Added date/time stamping to PHP error log file. (Andrei, Joey)
- - Added is_subclass_of() function (Andrei, Zend Engine)
- - Implemented count_chars(). (Thies)
- - Added class_exists() function (Andrei, Zend Engine)
- - Made strspn() and strcspn() binary-safe. (Andrei)
- - Added array_multisort() function. (Andrei)
- - Made pageinfo.c thread-safe (Sascha)
- - Made implode() binary-safe (Andrei)
- - Made strstr(), stristr(), and ucwords() binary-safe() (Andrei)
- - Made strtoupper(), strtolower(), substr_replace() binary-safe. (Andrei)
- - Fixed a crash in the Apache syntax highlighting mode (Zeev)
- - Report all ODBC error's not just the one on the top of the stack (lurcher)
- - OCI8 now returns NULL values in LONG columns correct. (Thies)
- - Added support for a C-like assert() function. (Thies)
- - Added CyberCash support. (Evan)
- - Made explode() binary-safe. (Thies)
- - Made strpos() binary-safe. (Thies)
- - Added XML_Set_Object() function, now you can use the XML-Parser from
- within an object. (Thies)
- - Session vars are now decoded into $HTTP_STATE_VARS[] array and the
- globals, depending on track_vars and gpc_globals settings (Andrei)
- - Added get_used_files() function - returns a hash mapping the use()'d files
- to their full path (Zeev)
- - PHP 4 scripts will now obey the max_execution_time setting and actually
- time out (Rasmus)
- - Added configure command to phpinfo() output (Stig)
- - Added optional socket path to the mysql_?connect() functions (Rasmus)
- - Made mysql and gd work as shared extensions again (Stig)
- - Make the global GET/POST/Cookie variables and their $HTTP_*_VARS[] counterparts
- be references to each other (Zeev)
- - Added support for the 'use' keyword - behaves like 'require', but will not
- use the same file more than once (Andi & Zeev, Zend Engine)
- - Added check to see if a persistent connection is still valid with the
- ODBC interface before reusing (nick@easysoft.com)
- - Added DBMaker support (patch by Pax Tsai <paxtsai@lion.syscom.com.tw>)
- - Renamed "PECL" to "PEAR" (PHP Extension and Add-on Repository) (Stig)
- - buildconf now uses build.mk (Stig)
- - Disable symlinks to urls (Rasmus)
- - Informix driver now reflects version of ESQL/C used (Danny)
- - Modified session_register() to take variable number of arguments (Andrei)
- - Fixed file descriptor leak in thread safe mode (Zeev, Zend Engine)
- - Added select(), fd_set() and fd_isset() (Evan)
- - cpdf support has been ported from php3, needs ClibPDF 2.x (Uwe)
- - Fixed a leak when using automatic output buffering (Zeev)
- - Introduced PECL - PHP Extension and Code Library
- (prounounced "pickle") (Stig)
- - Fixed inconsistencies in the implementation of here-docs (Andi & Zeev, Zend
- library)
- - Fixed a problem with constant class-member initializations (Andi & Zeev,
- Zend Engine)
- - Fixed float-compare in min(),max(),a[r]sort(),[r]sort() (Thies)
- - Implemented get_html_translation_table() function (Thies)
- - Implemented array_flip() function. Returns input-array with key, value
- flipped (Thies)
- - Added Berkeley DB3 support in DBA (Sascha)
- - Implemented 2-Arg version of strtr($str,$translation_array). This can be used
- to revert what htmlspecialchars() did (Thies)
- - Fixed mem-overwrite in XML_Parse_Into_Struct (Thies)
- - Added substr_replace() function (Andrei)
-
- November 16 1999, Version 4.0 Beta 3
- - ucfirst()/ucwords() no longer modify arg1 (Thies)
- - Fixed strtr() not to modify arg1 (Thies)
- - Added Win32 build files for Informix driver and make it
- compile with ZTS (danny)
- - Added tmpfile() function (Stig)
- - Upgraded regex library to alpha3.8 (Sascha)
- - Fixed selecting nested-tables in OCI8. (Thies)
- - RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies)
- - Fixed OpenLink ODBC support (Stig)
- - min(),max(),a[r]sort(),[r]sort(),k[r]sort() now work consistent with the
- language-core. (Thies)
- - tempnam() now uses mkstemp() if available (Stig)
- - serialize() and var_dump() now honor the precision as set in php.ini
- for doubles. (Thies)
- - Improved the Win32 COM module to support [out] parameters (Boris Wedl)
- - Fixed garbage returned at the end of certain Sybase-Columns (Thies)
- Patch submitted by: neal@wanlink.com
- - Added Microsoft SQL Server module for Win32 (Frank)
- - Added support for forcing a variable number of internal function arguments
- by reference. (Andi & Zeev, Zend Engine)
- - Implemented getprotoby{name,number} (Evan)
- - Added array_pad() function. (Andrei)
- - Added new getservby{name,port} functions. (Evan)
- - Added session.cookie_path and session.cookie_domain (Sascha)
- - Continue processing PHP_INI_SYSTEM knownDirectives after extension=
- (Sam Ruby)
- - Enable IBM DB2 support - Tested against DB2 6.1 UDB on Linux (Rasmus)
- - Added new str_repeat() function. (Andrei)
- - Output-Buffering system is now Thread-Safe. (Thies)
- - implemented OCI8 $lob->WriteToFile() function - very useful for streaming
- large amounts of LOB-Data without to need of a huge buffer. (Thies)
- - Added session.use_cookies option (Sascha)
- - Added getcwd() function. (Thies)
- - XML_Parse_Into_Struct no longer eats data. (Thies)
- - Fixed parse_url('-') crash. (Thies)
- - added === operator support. (Andi & Thies, Zend Engine)
- - unserialize() now gives a notice when passed invalid data. (Thies)
- - Fixed shuffle() so that it no longer breaks on Solaris. (Andrei)
- - Added is_resource(), is_bool() functions. (Thies)
- - Cleaned up File-Module (Thies)
- - Upgraded math-funtions to use new Zend function API (Thies)
- - Fixed zombie problem in shell_exec() and $a = `some_command`
- constructs. (Thies)
- - Thies introduced ZEND_FETCH_RESOURCE2 (Danny).
- - Added Informix driver to list of maintained extensions. (Danny).
- - Informix driver : Changed ifx.ec to use the new high-performance
- ZEND API. (Danny)
- - IXF_LIBDIR environment variable specifies alternate Informix library
- path for configure (Danny).
- - Fixed gmmktime() so that the following should always be true:
- gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) (Jouni)
- - setlocale doesn't anymore screw up things if you forgot to change it back
- to the original settings. (Jouni)
- - Switched to new system where ChangeLog is automagically updated from commit
- messages. NEWS file is now the place for public announcements. (Andrei)
- - Fixed refcount problem in XML module. (Thies)
- - Fixed crash in HTTP_RAW_POST_DATA handling (Thies)
- - You can use resources as array-indices again (Thies, Zend Engine)
- - Fixed pg_fetch_array() with three arguments (Sascha)
- Patch submitted by: brian@soda.berkeley.edu
- - Upgraded a lot internal functions to use new Zend function API (Thies)
- - fdf support ported; not completely tested with latest version 4.0 for
- glibc (Uwe)
- - OCI8 connections are now kept open as long as they are referenced (Thies)
- - Cleaned up Directory-Module (Thies)
- - Small fix in Ora_Close (Thies)
- - Ported range() and shuffle() from PHP 3 to PHP 4 (Andrei)
- - Fixed header("HTTP/..."); behaviour (Sascha)
- - Improved UNIX build system. Now utilizes libtool (Sascha)
- - Upgrade some more internal functions to use new Zend function API. (Thies,
- Zend Engine)
- - Fixed backwards incompatibility with ereg() (Thies)
- - Updated Zend garbage collection with a much more thorough method.
- (Andi, Zend Engine)
- - Added the ability to use variable references in the array() construct.
- For example, array("foo" => &$foo). (Andi, Zend Engine)
- - Added array_reverse() function (Andrei)
- - Some more XML fixes/cleanups (Thies)
- - Updated preg_replace() so that if any argument passed in is an array
- it will make a copy of each entry before converting it to string so that
- the original is intact. If the subject is an array then it will preserve
- the keys in the output as well (Andrei)
- - Updated OCI8 to use the new high-performance Zend function API. (Thies)
- - Configure speedup (Stig)
- - Fixed LOB/Persistent-Connection related OCI8-Crash (Thies)
- - Generalized server-API build procedure on UNIX (Stig)
- - Added '--disable-rpath' option (Sascha)
- - Added AOLserver SAPI module (Sascha)
- - Fixed XML Callbacks. (Thies)
- - Updated ODBC to use the new high-performance Zend function API (kara)
- - Updated zlib to use the new high-performance Zend function API. (Stefan)
- - Updated preg_split() to allow returning only non-empty pieces (Andrei)
- - Updated PCRE to use the new high-performance Zend function API (Andrei)
- - Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use
- the new high-performance Zend function API (Sascha)
- - Extended var_dump to handle resource type somewhat (Andrei)
- - Updated WDDX to use the new high-performance Zend function API (Andrei)
- - Updated XML to use the new high-performance Zend function API. (Thies)
- - Updated Oracle to use the new high-performance Zend function API. (Thies)
- - Improved the performance of the MySQL module significantly by using the new
- high-performance Zend function API. (Zeev)
- - Added support for the Easysoft ODBC-ODCB Bridge (martin@easysoft.com)
- - Fixed bug in odbc_setoption, getParameter call incorrect (martin@easysoft.com)
- - Ora_Fetch_Into now resets the returned array in all cases (Thies)
- - Fixed NULL-Column problem in Oracle-Driver (Thies)
- - Added extra metadata functions to ODBC, SQLTables etc (nick@easysoft.com)
- - Fixed SEGV in mcal make_event_object() and
- typo in mcal_list_alarms() (Andrew Skalski)
- - Fixed Ora_PLogon (Thies)
- - Resourcified Oracle (Thies)
- - Implemented object serialization/deserialization in WDDX (Andrei)
- - Added krsort() function (Thies)
- - Added func_num_args(), func_get_arg() and func_get_args() for standard
- access to variable number of arguments functions (Zeev)
- - Added FTP support (Andrew Skalski)
- - Added optional allowable_tags arguments to strip_tags(), gzgetss() and
- fgetss() to allow you to specify a string of tags that are not to be
- stripped (Rasmus)
- - Upgraded var_dump() to take multiple arguments (Andrei)
- - Resourcified XML (Thies)
- - Fixed a memory leak in the Apache per-directory directives handler (Zeev)
- - Added array_count_values() function. (Thies)
- - snmp, pgsql, mysql and gd modules can be built as dynamically loaded
- modules (Greg)
- - OCI8 fix for fetching empty LOBs (Thies)
- - Added user-level callbacks for session module (Sascha)
- - Added support for unknown POST content types (Zeev)
- - Added "wddx" serialization handler for session module (Sascha)
- (automatically enabled, if you compile with --with-wddx)
- - Fixed unserializing objects (Thies)
- - PHP 4.0 now serializes Objects as 'O' (not understood by PHP 3.0), but
- unserializes PHP 3.0 serialized objects as expected. (Thies)
- - Made serialize/unserialize work on classes. If the class is known at
- unserialize() time, you'll get back a fully working object! (Thies)
- - Reworked preg_* functions according to the new PCRE API, which also made
- them behave much more like Perl ones (Andrei)
- - Made it possible to specify external location of PCRE library (Andrei)
- - Updated bundled PCRE library to version 2.08 (Andrei)
- - count()/is_array/is_object... speedups. (Thies)
- - OCI8 supports appending and positioning when saving LOBs (Thies)
- - Added metaphone support (Thies)
- - OCI8 doesn't use define callbacks any longer. (Thies)
- - OCI8 Driver now supports LOBs like PHP 3.0. (Thies)
- - var_dump now dumps the properties of an object (Thies)
- - Rewrote the GET/POST/Cookie data reader to support multi-dimensional
- arrays! (Zeev)
- - Renamed allow_builtin_links to expose_php (defaults to On). This directive
- tells PHP whether it may expose its existence to the outside world, e.g.
- by adding itself to the Web server header (Zeev)
- - Added support for transparent session id propagation (Sascha)
- - Made WDDX serialize object properties properly (Andrei)
- - Fixed WDDX mem leak when undefined variable is passed in
- for serialization (Andrei)
- - Added session_unset() function (Andrei)
- - Fixed double session globals shutdown crash (Andrei)
- - Fixed crash related to ignore_user_abort ini entry (Andrei)
- - Added support for external entropy sources for session id creation
- (on Unices /dev/random and /dev/urandom) (Sascha)
- - Added gpc_globals variable directive to php.ini. By default it is On, but
- if it is set to Off, GET, POST and Cookie variables will not be inserted
- to the global scope. Mostly makes sense when coupled with track_vars (Zeev)
- - Added versioning support for shared library (Sascha)
- This allows concurrent use of PHP 3.0 and PHP 4.0 as Apache modules. See
- the end of the INSTALL file for more information.
- - Added second parameter to array_keys which specifies search value
- for which the key should be returned (Andrei)
- - Resourcified Informix driver (Danny)
- - New resource handling for odbc, renamed to php_odbc.[ch]
- - Make set_time_limit() work on Unix (Rasmus)
- - Added connection handling support (Rasmus)
- - Improved the Sybase-CT module to make use of resources (Zeev)
- - Improved the mSQL module to make use of resources (Zeev)
- - Changed mysql_query() and mysql_db_query() to return false in case of saving
- the result set data fails (Zeev)
- - Improved the resource mechanism - resources were not getting freed as soon
- as they could (Zeev)
- - Added shared memory module for session data storage (Sascha)
- - Fixed session.auto_start (Sascha)
- - Fixed several problems with output buffering and HEAD requests (Zeev)
- - Fixed HTTP Status code issue with ISAPI module (Zeev)
- - Fixed a problem that prevented $GLOBALS from working properly (Zeev, Zend
- library)
- - Ported newest GetImageSize (Thies)
- - Added session compile support in Win32 (Andi)
- - Added -d switch to the CGI binary that allows overriding php.ini values
- from the command line (Zeev)
- - Fixed a crash that would occur if wddx_deserialize did not receive
- a valid packet (Andrei)
- - Fixed a bugglet when redefining a class at run-time (Andi, Zend Engine)
- - Fixed sem_get() on AIX (Sascha)
- - Fixed fopen() to work with URL's in Win32 (Andi & Zeev)
- - Fixed include_path for Win32 (Andi, Zend Engine)
- - Fixed bug in ISAPI header sending function (Charles)
- - Fixed memory leak when using undefined values (Andi & Zeev, Zend Engine)
- - Added output_buffering directive to php.ini, to enable output buffering
- for all PHP scripts - default is off (Zeev).
- - Fixed some more class inheritance issues (Zeev, Zend Engine)
- - Fixed Apache build wrt to shared modules on FreeBSD/Linux (Sascha)
- - Added session.extern_referer_chk which checks whether session ids were
- referred to by an external site and eliminates them (Sascha)
- - Improved session id generation (Sascha)
- - Improved speed of uniqid() by using the combined LCG and removing
- the extra usleep() (Sascha)
- - Introduced general combined linear congruential generator (Sascha)
- - Made ldap_close back into an alias for ldap_unbind (Andrei)
- - OciFetchInto now resets the returned array in all cases (Thies)
- - Fixed mysql_errno() to work with recent versions of MySQL (Zeev)
- - Fixed a problem with define() and boolean values (Zeev)
- - Fixed inclusion of gd/freetype functions (Sascha)
- - Fixed persistency of MHASH_* constants (Sascha)
- - Oracle is now ZTS-Safe (Thies)
- - Fixed flushing of cached information to disk in DBA's DB2 module (Sascha)
- - OCI8 is now ZTS-Safe (Thies)
- - Fixed is_writeable/is_writable problem; they are both defined now (Andrei)
- - Imported PHP 3.0 diskfreespace() function (Thies)
- - Fixed thread-safety issues in the MySQL module (Zeev)
- - Fixed thread-safe support for dynamic modules (Zeev)
- - Fixed Sybase CT build process (Zeev)
-
- August 9 1999, Version 4.0 Beta 2
- - Fixed a problem when sending HTTP/1.x header lines using header() (Zeev)
- - Win32 builds now include the ODBC module built-in (Zeev)
- - Fixed SYSV-SHM interface (Thies).
- - Updated hyperwave module, made it thread safe
- - Updated pdflib module, version 0.6 of pdflib no longer supported
- - Updated fdf module
- - Built-in phpinfo() links are now turned off by default. They can be turned
- on using the allow_builtin_links INI directive (Zeev)
- - Changed phpinfo() to list modules that have no info function (Zeev)
- - Modified array_walk() function so that the userland callback is passed
- a key and possible user data in addition to the value (Andrei)
- - Fixed ldap_search(), ldap_read() and ldap_list() (Zeev)
- - Fixed Apache information in phpinfo() (sam@breakfree.com)
- - Improved register_shutdown_function() - you may now supply arguments that
- will be passed to the shutdown function (Zeev)
- - Improved call_user_func() and call_user_method() - they now support passing
- arguments by reference (Zeev)
- - Fixed usort() and uksort() (Zeev)
- - Fixed md5() in the Apache module (Thies)
- - Introduced build process for dynamic modules (Stig)
- - Improved ISAPI module to supprt large server variables (Zeev)
- - Imported PHP 3.0 fixes for problem with PHP as a dynamic module and Redhat
- libc2.1 in zlib module (Stefan)
- - Fixed sybase_fetch_object() (Zeev)
- - Made the IMAP module work with PHP 4.0 (Zeev)
- - Fixed a problem with include()/require() of URLs (Sascha, Zeev)
- - Fixed a bug in implode() that caused it to corrupt its arguments (Zeev)
- - Added get_class($obj), get_parent_class($obj) and method_exists($obj,"name")
- (Andi & Zeev)
- - Fixed various inheritance problems (Andi & Zeev, Zend Engine)
- - Children now inherit their parent's constructor, if they do not supply a
- constructor of their own.
- - Fixed runtime inheritance of classes (parent methods/properties were
- overriding their children) (Zeev, Zend Engine)
- - Fixed backwards incompatibility with the "new" operator (Andi, Zend Engine)
- - Fixed bugs in uksort() and ksort() sort ordering (Andrei)
- - Fixed a memory leak when using assignment-op operators with lvalue of type
- string (Zeev, Zend Engine)
- - Fixed a problem in inheritance from classes that are defined in include()d
- files (Zeev, Zend Engine)
- - Fixed a problem with the PHP error handler that could result in a crash
- on certain operating systems (Zeev)
- - Apache php_flag values only recognized 'On' (case sensitive) - changed
- to case insensitive (Zeev)
- - Fixed a memory leak with switch statement containing return statements
- (Andi & Zeev, Zend Engine)
- - Fixed a crash problem in switch statements that had a string offset
- as a conditional (Andi & Zeev, Zend Engine)
- - Imported PHP 3.0 fixes for rand() and mt_rand() (Rasmus)
- - Added function entries for strip_tags() and similar_text() (Andrei)
- - Fixed a bug in WDDX that would cause a crash if a number was passed in
- instead of a variable name (Andrei)
- - Ported strtotime() function from PHP 3.0 (Andrei)
- - Merged in gdttf stuff from PHP 3.0 (Sascha)
- - buildconf now checks your installation (Stig)
- - XML module now built dynamically with --with-xml=shared (Stig)
- - Added a check for freetype.h - fixed build on RedHat 6.0 (Zeev)
- - Fixed array_walk() to work in PHP 4.0 (Andrei)
- - Ported all remaining date() format options from PHP 3.0 (Andrei)
- - $php_errormsg now works (Andrei)
- - Added locale support for Perl Compatible Regexp functions (Andrei)
- - Informix module ported (Danny)
- - Removed --with-shared-apache (Sascha)
- - Added patch for reverse lookup table in base64_decode (Sascha)
- Submitted by bfranklin@dct.com
- - Merged in PHP 3.0 version of str_replace (Sascha)
- - Added DBA module (Sascha)
- - Added session id detection within REQUEST_URI (Sascha)
- - Merged in HP-UX/ANSI compatibility switch from PHP 3.0 (Sascha)
- - Fixed rpath handling for utilitites built during Apache build (Sascha)
- - Added missing E_ error level constants (Zeev, Zend Engine)
- - Fixed a bug in sending multiple HTTP Cookies under Apache (Zeev)
- - Fixed implicit connect on the MySQL, mSQL, PostgreSQL and Sybase
- modules (Zeev)
- - Gave PHP 4.0's SNMP extension all the functionality of PHP 3.0.12 (SteveL)
-
- July 19 1999, Version 4.0 Beta 1
- - First public beta of PHP 4.0
-